一、在Eclipse中安装mybatis generator

菜单选择:Help->Eclipse Marketplace


二、 创建generatorConfig.xml配置文档

配置好的generatorConfig.xml文件内容:

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--加载属性文件--><propertiesresource="application.properties"/><!--context:生成一组对象的环境id:必选,上下文id,用于在生成错误时提示defaultModelType:指定生成对象的样式1,conditional:类似hierarchical;2,flat:所有内容(主键,blob)等全部生成在一个对象中;3,hierarchical:主键生成一个XXKey对象(keyclass),Blob等单独生成一个对象,其他简单属性在一个对象中(recordclass)targetRuntime:1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;introspectedColumnImpl:类全限定名,用于扩展MBG--><contextid="context1"defaultModelType="hierarchical"targetRuntime="MyBatis3Simple"><!--自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖--><propertyname="autoDelimitKeywords"value="false"/><!--生成的Java文件的编码--><propertyname="javaFileEncoding"value="UTF-8"/><!--格式化java代码--><propertyname="javaFormatter"value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/><!--格式化XML代码--><propertyname="xmlFormatter"value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/><!--beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号;--><propertyname="beginningDelimiter"value="`"/><propertyname="endingDelimiter"value="`"/><!--实现自定义的代码生成器plugin--><!--<plugintype="org.mybatis.PaginationPlugin"/>--><commentGenerator><propertyname="suppressDate"value="true"/><!--是否去除自动生成的注释true:是:false:否--><propertyname="suppressAllComments"value="true"/></commentGenerator><!--数据库连接URL,用户名,密码--><jdbcConnectiondriverClass="${spring.datasource.driver-class-name}"connectionURL="${spring.datasource.url}"userId="${spring.datasource.username}"password="${spring.datasource.password}"><propertyname="nullCatalogMeansCurrent"value="true"/></jdbcConnection><!--java类型处理器用于处理DB中的类型到Java中的类型,默认使用JavaTypeResolverDefaultImpl;注意一点,默认会先尝试使用Integer,Long,Short等来对应DECIMAL和NUMERIC数据类型;--><javaTypeResolvertype="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"><!--true:使用BigDecimal对应DECIMAL和NUMERIC数据类型false:默认,scale>0;length>18:使用BigDecimal;scale=0;length[10,18]:使用Long;scale=0;length[5,9]:使用Integer;scale=0;length<5:使用Short;--><propertyname="forceBigDecimals"value="false"/></javaTypeResolver><!--生成模型的包名和位置--><javaModelGeneratortargetPackage="com.kai.demo.model"targetProject="demo/src/main/java"><!--forMyBatis3/MyBatis3Simple自动为每一个生成的类创建一个构造方法,构造方法包含了所有的field;而不是使用setter;--><propertyname="constructorBased"value="false"/></javaModelGenerator><!--映射文件的包名和位置--><sqlMapGeneratortargetPackage="com.kai.demo.mapper"targetProject="demo/src/main/java"/><!--DAO的包名和位置--><javaClientGeneratortargetPackage="com.kai.demo.dao"targetProject="demo/src/main/java"type="XMLMAPPER"><!--是否允许建立子包,对应Mysql的Schema--><propertyname="enableSubPackages"value="true"/></javaClientGenerator><!--要生成哪些表--><tableschema="mybatis"tableName="%"enableSelectByExample="false"enableDeleteByExample="false"enableCountByExample="false"enableUpdateByExample="false"selectByExampleQueryId="false"></table></context></generatorConfiguration>

(我也不知道为什么itpub的xml片段插入之后,结尾会多了点,正确的xml几位应该是)

选中generatorConfig.xml文件,右键菜单Run As->Run Mybatis Generator 生成Model、Dao、Mapper

创建User表的SQL:

DROPTABLEIFEXISTS`user`;CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(20)DEFAULTNULL,`password`varchar(50)DEFAULTNULL,`email`varchar(50)DEFAULTNULL,`nickname`varchar(50)DEFAULTNULL,`regtime`datetimeDEFAULTNULLONUPDATECURRENT_TIMESTAMP,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;


四、对UserMapper进行单元测试

在项目的src/test/java下创建类文件UserMapperTest.java

@RunWith(SpringRunner.class)@SpringBootTestpublicclassUserMapperTest{@AutowiredprivateUserMapperuserMapper;@TestpublicvoidtestQuery()throwsException{Useruser=userMapper.selectByPrimaryKey(1);System.out.println(user.toString());}}

右键Run As->JUnit Test


完整环境下载地址:https://github.com/CatherineHu/Spring-Boot-Mybatis-MVC