逆向工程生成的文件通常 pojo 类 没有 字段注释,也是有点不方便,而且功能也比较少,研究后发现可以实现的,详见官方文档。
1.generatorConfiguration 配置
注意:如果生成的逆向工程文件带 WithBLOBs ,通常是由数据库文本类型引起的。
在配置文件加上:<columnOverride column="文本" javaType="java.lang.String" />
<?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>
<!--defaultModelType="flat" hierarchical-->
<context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 配置pojo的序列化 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<!-- equals和hashcode方法 -->
<!-- <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<!--通用 Mapper 插件,可以生成带注解的实体类-->
<property name="mappers" value="tk.mybatis.mapper.common.Mapper,
tk.mybatis.mapper.common.MySqlMapper,tk.mybatis.mapper.common.IdsMapper,tk.mybatis.mapper.common.ConditionMapper"/>
<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
</plugin>
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.0.1.91:3306/taotao?useUnicode=true&characterEncoding=utf8"
userId="root"
password="root">
<property name="useInformationSchema" value="true"/>
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.taotao.pojo" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成XML映射文件的包名和位置-->
<sqlMapGenerator targetPackage="resources.mapper" targetProject="src/main">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO接口的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.taotao.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<!-- 将数据类型中timestamp转为java.sql.Timestamp-->
<!-- demo: -->
<table schema="" tableName="tb_item" domainObjectName="TbItem">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
<!-- <columnOverride column="status" javaType="boolean"/>-->
<!--<columnOverride column="create_time" javaType="java.sql.Timestamp" />-->
<!--<columnOverride column="update_time" javaType="java.sql.Timestamp" />-->
</table>
</context>
</generatorConfiguration>
2. pom 文件
dependencies 里面引入
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.0.0</version> </dependency>
并在pom文件加上
<build> <plugins> <!-- mybatis example 逆向生成--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <dependencies> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.0.0</version> </dependency> </dependencies> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> <configurationFile>${basedir}/src/main/resources/generator.xml</configurationFile> </configuration> </plugin> </plugins> </build>
注意:这里的数据库和你的数据库版本最好差不多。
3.使用逆向工程。
在你对应的项目模块中,直接双击即可。
4.结果
调用 mapper 查询,基本已经满足所有查询: