mybatisgenerator⾃动⽣成代码(带注释的实体类)
使⽤前提:
当你开发的java 项⽬或新模块的数据库有N张表操作时,这时要⾃⼰写实体类、dao、l等⽂件,如果有多个表,就是造成时间浪费降低开发效率,所以建议使⽤mybatis generator ⾃动⽣成⼯具。可以⾃动帮助你⽣成java实体类、dao、l等。
第⼀步:环境配置和l⽂件
pom⽂件中加⼊jar的引⼊
<!-- mybatis逆向⽣成mapper和model -->
<dependency>
<groupId&ator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
第⼆步:新建l⽂件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-////DTD MyBatis Generator Configuration 1.0//EN"
"/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--指定特定数据库的jdbc驱动jar包的位置-->
<classPathEntry location="D:mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>
<context id="default" targetRuntime="MyBatis3">
<!-- optional,旨在创建class时,对注释进⾏控制 -->
<commentGenerator type="com.firehome.utils.MyCommentGenerator">
<property name="suppressAllComments" value="true"/>
mysql下载jar包
<property name="suppressDate" value="true"/>
</commentGenerator>
<!--jdbc的数据库连接 -->
<jdbcConnection
driverClass="sql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/car"
userId="root"
password="123456">
</jdbcConnection>
<!-- ⾮必需,类型处理器,在数据库类型和java类型之间的转换控制-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- Model模型⽣成器,⽤来⽣成含有主键key的类,记录类 以及查询Example类
targetPackage    指定⽣成的model⽣成所在的包名
targetProject    指定在该项⽬下所在的路径
-->
<javaModelGenerator targetPackage="com.firehome.del"
targetProject=".\src\main\java">
<!-- 是否允许⼦包,即targetPackage.schemaName.tableName -->
<property name="enableSubPackages" value="true"/>
<!-- 是否对model添加 构造函数 -->
<property name="constructorBased" value="false"/>
<!-- 是否对类CHAR类型的列的数据进⾏trim操作 -->
<property name="trimStrings" value="true"/>
<!-- 建⽴的Model对象是否 不可改变  即⽣成的Model对象不会有 setter⽅法,只有构造⽅法 -->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--Mapper映射⽂件⽣成所在的⽬录 为每⼀个数据库的表⽣成对应的SqlMap⽂件 -->
<sqlMapGenerator targetPackage="com.firehome.jdc.patient.mapper"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 客户端代码,⽣成易于使⽤的针对Model对象和XML配置⽂件 的代码
type="ANNOTATEDMAPPER",⽣成Java Model 和基于注解的Mapper对象
type="MIXEDMAPPER",⽣成基于注解的Java Model 和相应的Mapper对象
type="XMLMAPPER",⽣成SQLMap XML⽂件和独⽴的Mapper接⼝(相当于dao层接⼝)
-->
<javaClientGenerator targetPackage="com.firehome.jdc.patient.mapper"
targetProject=".\src\main\java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="patient" domainObjectName="Patient">
<!-- enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="tr"
selectByExampleQueryId="true" -->
</table>
</context>
</generatorConfiguration>
使⽤注意点:
1、classPathEntry 中的location为数据库连接驱动jar包  我⽤的是mysql-connector-java-5.1.38.jar ,⽬录存放在⾃⼰电脑本地
2、commentGenerator 对⽣成的注释进⾏控制(⽂尾提供⽂件下载)
该元素有⼀个可选属性type,可以指定⽤户的实现类,该类需要实现ator.api.CommentGenerator接⼝。⽽且必有⼀个默认的构造⽅法。这个属性接收默认的特殊值DEFAULT,会使⽤默认的实现类
因为系统提供了⼀个默认的实现类,所以对我们来说,⾃⼰实现⼀个会很容易,最简单的⽅法就是复制默认实现类代码到⼀个新的⽂件中,修改类名如MyCommentGenerator,在你⾃⼰的实现类中,你可以选择是否继续⽀持上⾯的两个属性,你还可以增加对其他属性的⽀持。
修改MyCommentGenerator中的⽅法addFieldComment即可:
public void addFieldComment(Field field,
IntrospectedTable introspectedTable,
IntrospectedColumn introspectedColumn) {
if (Remarks() != null && !Remarks().equals("")) {
field.addJavaDocLine("/**");
field.addJavaDocLine(" * "+ "对应字段:"+ActualColumnName() +",字段含义:"+ Remarks());
field.addJavaDocLine(" */");
}
}
3、jdbcConnection :jdbc的数据库连接
4、javaModelGenerator ⽣成实体类的相关配置,targetPackage:类名、targetProject:位置
5、sqlMapGenerator ⽣成的SqlMappser⽂件,
6、javaClientGenerator ⽣成的mapper接⼝
7、table 数据库表名及实体类名叫啥
相关配置参考⾃:
第三步:⽣成代码⽅式
⾃动⽣成有⼏种⽅式,我们这⼉直接跑代码,看起来直接了当,执⾏下段代码即可:
public class Test {
public static void main(String[] args) {
args = new String[] { "-configfile", "src\\main\\resources\\l", "-overwrite" };
ShellRunner.main(args);
}
}
⽣成⽂件的展⽰:
实体类:
mapper接⼝:
4、除此之外,还会⽣成PatientExample,此类对单标的操作⾮常灵活,如果不想使⽤,删掉即可,或者配置的时候不⽣成Example类也可。(⾃⼰本⼈以前⽤过,这⼉不写过多)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。