Mybatis实现自动生成数据库表的xml配置详解 (mybatis xml生成数据库表)

Mybatis是一款很受欢迎的Java持久层框架,同时也是一种优秀的ORM(对象关系映射)解决方案。它提供了一种映射关系,数据表中的每个列都对应着Java类中的一个属性。通过它,开发者能够更加便捷地操作和管理数据库。

在使用Mybatis时,经常会有这样的情况:我们需要用到一个新的数据库表,但是手动写XML配置文件映射所有字段显得费时费力。那么,Mybatis是否有自动生成数据库表的功能呢?答案是肯定的。本文将详细讲解Mybatis实现自动生成数据库表的XML配置。

一、Mybatis自动生成XML配置的原理

Mybatis自动生成XML配置文件的原理实际上很简单,它的步骤大致如下:

1. 解析Java实体类,获取所有属性

2. 判断属性类型,根据类型选择对应的JDBC类型

3. 生成对应的XML配置文件

这一过程需要结合Mybatis的一些插件集成才能实现。在正式介绍实现方法前,需要了解一些相关的Mybatis插件。

1. MGB

Mybatis Generator(简称MGB)是Mybatis官方提供的一种代码生成器。它可以通过简单的配置,根据数据表自动生成Java对象、DAO接口以及Mybatis XML映射文件。MGB生成的XML映射文件使用简单,但缺点是它只能一次性生成完整的Java对象、DAO接口以及映射文件,不支持增量生成。

2. Mybatis Plus

Mybatis Plus 是一个Mybatis的增强工具,它通过引入一些枚举类、注解和函数式接口,简化了操作数据库的代码,并封装了一些常用的操作。Mybatis Plus提供了一种自动代码生成方案,可以通过实体类的信息自动生成对应的Mybatis配置文件和DAO接口。与MGB相比,它支持增量生成。

3. Mybatis-Plus-Generator

Mybatis-Plus-Generator是一个基于Mybatis-Plus的代码生成器。它可以根据数据库表自动生成Java实体类、DAO接口以及Mybatis XML映射文件等代码。Mybatis-Plus-Generator支持配置文件化,可以自定义生成格式,同时支持增量生成。

二、Mybatis实现自动生成XML配置的方法

在前面介绍的Mybatis+、Mybatis Plus Generator和MGB中,都提供了自动生成XML配置文件的功能。接下来,将分别介绍它们的具体实现方法。

1. Mybatis+

Mybatis Plus提供了自动生成XML配置文件的功能,使用方法如下:

需要在工程中引入Mybatis Plus依赖:

“`

    com.baomidou

    mybatis-plus-boot-starter

    3.3.1

“`

接下来在配置文件application.yml中加入如下配置:

“`

mybatis-plus:

  # 配置自动注入

  configuration:

    map-underscore-to-camel-case: true

    auto-mapping-behavior: full

  # 配置自动扫描

  mapper-locations: classpath*:mapper/*Mapper.xml

  type-aliases-package: com.example.demo.domn.entity

“`

只需要创建一个实体类,添加Mybatis Plus的注解,即可自动生成XML配置文件:

“`

@Data

@Table(name = “t_user”)

public class User implements Serializable {

    @TableId(value = “id”, type = IdType.AUTO)

    private Long id;

    private String username;

    private String password;

}

“`

运行程序,Mybatis Plus即可自动生成XML配置文件和DAO层代码。如果需要在项目更新时对数据表进行修改,只需要修改对应的实体类,再次运行程序即可。

2. Mybatis-Plus-Generator

Mybatis-Plus-Generator是一个基于Mybatis Plus的代码生成器。通过配置其XML文件,即可自动实现对数据库表的Java实体类、DAO接口以及Mybatis映射文件的生成。下面是配置文件示例:

“`

<!DOCTYPE generatorConfiguration

        PUBLIC “-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN”

        “http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd”>

   

       

        <!–

       

       

           

           

           

        –>

       

           

           

       

       

       

                driverClass=”com.mysql.jdbc.Driver”

                connectionURL=”jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8″

                userId=”root”

                password=”root”>

       

       

       

           

           

       

       

       

           

           

       

       

       

           

           

       

       

       

           

       

       

       

       

       

       

   

“`

运行项目,Mybatis-Plus-Generator会自动根据配置文件生成对应的Java实体类、DAO接口以及Mybatis XML配置文件。

3. MGB

MGB是Mybatis官方提供的代码生成器,使用方法如下:

需要在工程中添加Maven依赖:

“`

    org.mybatis.generator

    mybatis-generator-core

    1.3.2

“`

接下来,在工程中创建一个配置文件generatorConfig.xml,用于配置生成规则:

“`

<!DOCTYPE generatorConfiguration

        PUBLIC “-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN”

        “http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd”>

   

       

       

       

        <!– –>

        <!– –>

        <!– –>

        <!– –>

        <!– –>

        <!– –>

        <!– –>

        <!– –>

        <!– –>

        <!– –>

       

       

           

           

       

       

       

           

       

       

       

           

           

       

       

       

   

“`

在命令行中输入如下命令启动代码生成器:

“`

java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite

“`

其中,-configfile指定配置文件的位置,-overwrite表示强制覆盖已有文件。

MGB插件成功运行后,将自动在指定的包路径中生成相应的Java实体类、DAO接口以及Mybatis映射文件。

三、

本文详细介绍了Mybatis实现自动生成数据库表的XML配置的方法。对于需要不断添加和修改数据库表的项目,自动生成XML映射文件可以大大提高开发效率和编写效果。根据自己的具体情况可以选择使用Mybatis Plus、Mybatis Plus Generator或MGB插件。希望本文能够对Mybatis自动化生成XML配置文件的开发者有所帮助。

相关问题拓展阅读:

如何在idea中使用Mybatis-generator插件快速生成代码

IntelliJ idea 开发工具的相关资料很少,加大了大家入手的难度,今天就以mybatis的插件唤喊安装做下示例,可能对于已经会用的人不值一提但是对于我们这些天资一般刚开始使用,我想还是会有些帮助。

安装步骤:

1.下载插件

mybatis 插件

插件下载完毕,存放指定位置,文件名默认应该是:mybatis-plus.jar

2.打开Intellij idea工具,打开菜单 File –> settings 选择 Plugs,点击Install plug from disk,选择刚刚下载的插件jar文件,确认后,会直接显示mybatis插件和和卜野其信息,表弊冲示安装成功。

3.插件安装后,打开settings,会有Mybatis一项!

Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱。

然而在使用的过程中会发现Intellij IDEA也有一些不尽如意的地方,难免会有些不爽:Intellij IDEA

的插件库远不及eclipse的丰富。 mybatis-generator在eclipse中有专门的插件,而没有开发出Intellij

IDEA能够使用的插件。

不过不用灰心,如果你的项目是使用maven组织的,那么我们可以在Intellij IDEA中使用 mybatis-generator-maven-plugin插件来完成MyBatis model 和Mapper文件的自动生成。

STEP 0.在Intellij IDEA创建maven项目(本过程比较简单,略)

STEP 1. 在maven项目的pom.xml 添加mybatis-generator-maven-plugin 插件

  

  

  

  

org.mybatis.generator  

mybatis-generator-maven-plugin  

1.3.2  

  

true  

true  

  

  

  

  

STEP 2. 在maven项目下的src/main/resources 目录下建立名为 generatorConfig.xml的配置文件,作为mybatis-generator-maven-plugin 插件的执行目标,模板如下:

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

元素,然后将此元素插入到SQL Map的 元素之中  

sqlStatement 的语句将会返回新的值  

如果是一个自增主键的话,你可以使用预定义的语句,或者添加自定义的SQL语句. 预定义的值如下:  

Cloudscape    This will translate to: VALUES IDENTITY_VAL_LOCAL()  

DB2:      VALUES IDENTITY_VAL_LOCAL()  

DB2_MF:SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1  

Derby:VALUES IDENTITY_VAL_LOCAL()  

HSQLDB:   CALL IDENTITY()  

Informix:     select dbinfo(‘sqlca.sqlerrd1’) from systables where tabid=1  

MySql:SELECT LAST_INSERT_ID()  

SqlServer:    SELECT SCOPE_IDENTITY()  

SYBASE:   SELECT @@IDENTITY  

JDBC:     This will configure MBG to generate code for MyBatis3 suport of JDBC standard generated keys. This is a database independent method of obtaining the value from identity columns.  

identity: 自增主键  If true, then the column is flagged as an identity column and the generated  element will be placed after the insert (for an identity column). If false, then the generated  will be placed before the insert (typically for a sequence).  

–>  

  

 元素在计算列名的对应 名称之前,先对列名进行重命名,  

作用:一般需要对BUSI_CLIENT_NO 前的BUSI_进行过滤  

支持正在表达式  

searchString 表示要被换掉的字符串  

replaceString 则是要换成的字符串,默认情况下为空字符串,可选  

–>  

  

  

  

  

  

  

  

  

这里使用了外置的配置文件generator.properties,可以将一下属性配置到properties文件之中,增加配置的灵活性:

jdbc.driverLocation=D:\\maven\\com\\oracle\\ojdbc14\\10.2.0.4.0\\ojdbc14-10.2.0.4.0.jar  

jdbc.driverClass=oracle.jdbc.driver.OracleDriver  

jdbc.connectionURL=jdbc:oracle:thin:@//localhost:1521/XE  

jdbc.userId=LOUIS  

jdbc.password=

项目目录如下:

STEP 3. 在Intellij IDEA添加一个“Run运行”选项,使用maven运行mybatis-generator-maven-plugin插件

mybatis xml生成数据库表的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mybatis xml生成数据库表,Mybatis实现自动生成数据库表的xml配置详解,如何在idea中使用Mybatis-generator插件快速生成代码的信息别忘了在本站进行查找喔。


数据运维技术 » Mybatis实现自动生成数据库表的xml配置详解 (mybatis xml生成数据库表)