generator.Mytatis半自动化代码生成器
Posted Recently 祝祝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了generator.Mytatis半自动化代码生成器相关的知识,希望对你有一定的参考价值。
generator启动文件:不需要更改可以直接用
public static void main(String[] args) {
try {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
// 指定 逆向工程配置文件
InputStream inputStream = Resources.getResourceAsStream("generatorConfig.xml");
//File configFile = new File("classpath:generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(inputStream);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
e.printStackTrace();
}
}
generator作用:
MyBatis Generator (MBG)-----》其实generator就是一个Mybatis代码生成器,但是不是生成所有的代码,部分需求的代码是需要自己写的,比如说分页需求,因为不同版本的Mybatis的代码部分是不一样的,而生成的代码适用于很多的数据库其中不只是 mysql。
generator而它将为所有版本的 MyBatis 生成代码。它将内省一个数据库表(或多个表)并生成可用于访问表的工件
MBG 生成不同风格和不同语言的代码,这取决于它的配置方式。
使用到的Jar包:
MBG配置文件:
generatorConfig.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>
<context id="testTables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mytest"
userId="root"
password="root">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="true" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.uplooking.pojo"
targetProject=".\\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="false" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mappers"
targetProject=".\\resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.uplooking.dao"
targetProject=".\\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="dept" mapperName="DeptMapper" domainObjectName="DeptVO">
</table>
<table schema="" tableName="emp" mapperName="EmpMapper" domainObjectName="EmpVO">
</table>
<table schema="" tableName="mybtis" mapperName="MybtisMapper" domainObjectName="MybtisVO">
<generatedKey column="sid" sqlStatement="MySql" identity="true" />
</table>
<!--<table schema="" tableName="orders"></table>-->
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
需要注意的是:
-
数据库连接信息,需要更改为本机的基本信息,例如数据库名称,数据库密码…
-
设置生成PO类的位置,注意路径的斜杠是靠左的斜杠\\而是靠右的斜杠/不然会报错
-
设置mapper映射文件生成的位置
-
接口类对应的数据库表名称,映射文件的名称这都是需要自己设置的,不设置就是默认的
10.
指定数据库表时可能使用到的配置: -
覆盖列 确定返回值
-
identity如果为true,则该列将被标记为标识列,并且生成的元素将放置在插入之后(对于标识列)。如果为false,则生成的将放置在插入之前(通常用于序列)。会返回一个新的值
-
还可以这设置为主要是为了获得主键
generator生成代码前期准备:
运行程序后:
若出现一下请求表示运行成功:
右键项目刷新:圈起来的全是自动生成代码
end》》》》
以上是关于generator.Mytatis半自动化代码生成器的主要内容,如果未能解决你的问题,请参考以下文章
文件参数化-utp框架之根据yaml文件自动生成python文件