目录
一、逆向工程简介
mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。
企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。
二、使用详解
1、下载依赖包
mybatis的逆向工程需要两个依赖包:mybatis-generator-core-1.3.2.jar、mysql-connector-java-5.1.34.jar
一个是逆向工程的核心包,一个是mysql核心包。
1)下载逆向工程:https://github.com/mybatis/generator/releases
2)下载mysql核心包:https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.34
2、随意创建一个项目
3、generator文件
<?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>
<!-- 数据库驱动包位置 -->
<classPathEntry location="D:\111coding\01working\00mybatisgenerator\generator\mybatis-generator-core-1.3.2.jar" /> <!-- 1 -->
<classPathEntry location="D:\111coding\01working\00mybatisgenerator\generator\mysql-connector-java-5.1.34.jar" /> <!-- 1 -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自动生成的注释 -->
<property name="suppressAllComments" value="false" />
</commentGenerator>
<!-- 数据库链接URL、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://mysql-mysqlha-write.mysql.svc.cluster.local:3306/test?useUnicode=true&characterEncoding=UTF8"
userId="01"
password="02">
</jdbcConnection>
<!-- Oracle数据库
<jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="yycg"
password="yycg">
</jdbcConnection>
-->
<!-- 默认为false,把JDBC DECIMAL 和NUMERIC类型解析为Integer,为true时
把JDBC DECIMAL 和NUMERIC类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 --> <!-- 3 -->
<javaModelGenerator targetPackage="com.hanclouds.teamwork.model" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成的映射文件包名和位置 --> <!-- 4 -->
<sqlMapGenerator targetPackage="com.hanclouds.teamwork.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 --> <!-- 5 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.hanclouds.teamwork.dao" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 要生成那些表(更改tableName和domainObjectName就可以) --><!-- 6 -->
<table tableName="share" domainObjectName="Share" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true" />
<table tableName="weekly" domainObjectName="Weekly" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true" />
</context>
</generatorConfiguration>
4、执行xml文件,生成代码
01
02
进入相关的目录,执行下面的语句即可
java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
另外推荐大家阅读这篇博文:MyBatis逆向工程代码的生成以及使用详解(持续更新)