kevincheung 2020-03-28
本次测试:没有使用maven骨架,不过创建完后,需要在pom文件中指定包的类型为war
- 导入相关依赖:mybatis、mybatis逆向工程、mysql、lombok
- 配置逆向工程插件
这里为什么需要Lombok?
? 因为mybaitis逆向工程只能为pojo类生成setter/getter,不会生成toString等其他方法,所以用lombok为我们生成其他方法
<dependencies> <!--mybatis核心--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!-- mybatis逆向工程依赖 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.6</version> </dependency> <!--mysql相关--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.2</version> </dependency> </dependencies> <build> <!--逆向工程插件--> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <configurationFile> ${basedir}/src/main/resources/generatorConfig.xml(其实是绝对位置) </configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> </dependencies> </plugin> </plugins> </build>
配置完mybatis逆向工程插件,图示
注意点:
- 如果项目中没有导入数据库的依赖包,那么在逆向工程xml文件中需要指定该驱动包的位置
<classPathEntry location="?"/>
- 逆向工程生成pojo类的时候默认会生成相应的example类,可以关闭
<?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> <!--导入properties文件属性--> <properties resource="config/dbconfig.properties" /> <!--指定数据库mysql-connector-java-5.1.6.jar包位置--> <!--<classPathEntry location="?"/>--> <!--id:自定义--> <context id="mybatisConfig" targetRuntime="MyBatis3"> <!--禁用注释--> <commentGenerator> <property name="suppressAllComments" value="true"/> <property name="suppressDate" value="true"/> </commentGenerator> <!--连接数据库,useSSL=false解决jdbc与mysql版本兼容问题--> <jdbcConnection driverClass="${driverClass}" connectionURL="${connectionURL}" userId="${userId}" password="${password}"/> <!--生成entity类--> <javaModelGenerator targetPackage="mybatis.pojo" targetProject="src/main/java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!--xml映射文件--> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!--mapper接口--> <javaClientGenerator type="XMLMAPPER" targetPackage="mybatis.dao" targetProject="src/main/java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 配置需要逆向工程生成实体类的对应的数据库表 schema:配置访问的数据库名 tableName:配置逆向工程生成的数据库表 domainObject:配置逆向工程生成实体类的名称 --> <!--table配置,指定数据库中t_user表生成对应的User实体类--> <!-- <table tableName="crm_admin" domainObjectName="Admin" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> <table tableName="book" domainObjectName="Book" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> --> <!--全部表参与逆向工程--> <!--以下example为false,表示不会生成example类,否则将自动生成example类--> <table schema="" tableName="%" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
创建在src/main/resources/config/dbconfig.properties(位置不固定)
注意:不知道为什么逆向工程xml文件只读取到数据库连接信息,其他的2、3、4、5、6的配置信息读取不到
# 1.数据库连接信息 driverClass=com.mysql.jdbc.Driver connectionURL=jdbc:mysql:///test?serverTimezone=UTC&useSSL=false userId=root password=root # 2.生成entity类 targetPackageEntity="mybatis.pojo" # 3.MapperXml映射文件 targetPackageMapperXml="mapper" # 4.mapper接口 targetPackageDAO="mybatis.dao" # 5.生成2、4文件的目标根目录位置 targetJavaProject="src/main/java" # 6.生成3文件的目标根目录位置 targetResourcesProject=src/main/resources