一、mybatis的代码生成器--generator
generator作用: 根据表帮你生成实体类,和dao和xml映射文件。就是简单的CRUD。
官网:MyBatis Generator Core – Introduction to MyBatis Generator/
二、generator的使用
1.导入mybatis-generator的依赖jar包。
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
2.创建配置文件
3.开始配置generator.xml文件
<?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>
<!--mysql的jar包在你本地的位置-->
<classPathEntry location="D:\maven\repMaven\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--是否关闭生产的评论注释-->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库源的配置-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai"
userId="root"
password="123456">
<!--防止mybatis逆向工程生成xml时重复生成多次数据库表-->
<property name="nullCatalogMeansCurrent" value="true" />
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--实体类的配置--> <!--包名--> <!--路径-->
<javaModelGenerator targetPackage="com.gsh.entity" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--映射文件的配置-->
<sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--dao数据访问层的配置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.gsh.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--数据库表和实体的映射关系-->
<!--schema:数据库名字 tableName:表名 domainObjectName:实体类名-->
<!--example:是生产复杂语句,可以关闭-->
<table schema="mybatis" tableName="student" domainObjectName="Student"
enableCountByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
enableUpdateByExample="false">
<property name="useActualColumnNames" value="true"/>
<generatedKey column="ID" sqlStatement="DB2" identity="true" />
<columnOverride column="DATE_FIELD" property="startDate" />
<ignoreColumn column="FRED" />
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
</table>
</context>
</generatorConfiguration>
4、运行已经配置的generator.xml文件
可以在主方法中也可以在@Test单元测试中运行
public void crud_student()throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("generator.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}