MyBatis Generator是什么?
MyBatis Generator (MBG) 是一个Mybatis的代码生成器,可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象,即根据数据库表自动生成Entity、mapper及mapper.xml配置文件。
在Eclipse里面添加MyBatis Generator
点击Eclipse的Help选项,然后点击其中的Eclipse Marketplace。然后在搜索框里面搜索mybatis generator,然后点击下载安装MyBatis Generator插件。如下图所示:
3.使用
在资源文件夹里面右键,点击new选择生成MyBatis Generator Configuration File。如下图所示:
生成的文件如下所示:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="context1"> <jdbcConnection connectionURL="???" driverClass="???" password="???" userId="???" /> <javaModelGenerator targetPackage="???" targetProject="???" /> <sqlMapGenerator targetPackage="???" targetProject="???" /> <javaClientGenerator targetPackage="???" targetProject="???" type="XMLMAPPER" /> <table schema="???" tableName="???"> <columnOverride column="???" property="???" /> </table> </context> </generatorConfiguration>
然后根据所选的数据库表进行配置,配置好的如下所示:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="context1"> <!-- 数据库连接 --> <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/crm?useUnicode=true& characterEncoding=utf-8&useSSL=false" driverClass="com.mysql.jdbc.Driver" password="root" userId="root" /> <!-- Java实体类所在包名称和项目名称 --> <javaModelGenerator targetPackage="com.luckylas.crm.entity" targetProject="crm/src/main/java" /> <!-- mapper.xml所在的包(targetPackage)和所在的项目(targetProject) --> <sqlMapGenerator targetPackage="com.luckylas.crm.mapper.xml" targetProject="crm/src/main/java" /> <!-- mapper所在的包(targetPackage)和所在的项目(targetProject) --> <javaClientGenerator targetPackage="com.luckylas.crm.mapper" targetProject="crm/src/main/java" type="XMLMAPPER" /> <!-- tableName标签表示数据库中的表,可以有多个, schema:用于指定实体类的名字,不指定则默认是表名的首字母大写 --> <table schema="User" tableName="user"> <!-- columnOverride表示将数据库表中字段名,在实体类中取一个新的名字。如果不指定,则会默认值--> <!-- <columnOverride column="UId" property="u_id" /> --> </table> </context> </generatorConfiguration>
注意:targetProject要跟完整的路径,前面的项目名称要有,不然生成不起
新版本特性
MyBatis Generator 1.3.6版本开始支持新的一种runtime模式:MyBatis3DynamicSql。这是一种全新的模式,对java的版本要求最低是java 8。该模式下不再生成 XML,不再生成 Example 类。文档里也推荐:join 操作要用到的 resultMap 应该是 XML 文件中的唯一元素。
新旧版本如何切换?
只需要将 context 的 targetRuntime 属性更改为 MyBatis3DynamicSQL 即可切换新版本。将 context 的 targetRuntime 属性更改为 MyBatis3 切换旧版本,如下所示:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 旧版本 <context id="context1" targetRuntime="MyBatis3"> --> <!-- 新版本 --> <context id="context1" targetRuntime="MyBatis3DynamicSQL"> <!-- ... --> </context> </generatorConfiguration>