目的:通过数据库表,反向生成bean、dao(mapper)、以及*mapper.xml
步骤:
工具目录:这边因为我使用的数据库为oracle数据库,需要一个驱动jar包
1、修改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">
<!-- maven commend like: -->
<!--Dmybatis.generator.overwrite=true mybatis-generator:generate -->
<generatorConfiguration>
<!-- 指定驱动的路径 -->
<!-- <classPathEntry location="E:/data/maven_repository/richinfo/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar" /> -->
<classPathEntry location="D:\java\jar\ojdbc14-10.2.0.1.0.jar" />
<!-- flat:该模型为每一张表只生成一个实体类 -->
<context id="oracleContext" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 给Java模型生成equals和hashcode方法 -->
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" />
<!-- 为生成的Java模型类添加序列化接口,并生成serialVersionUID字段 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<!-- 这个插件用来在XXXExample类中生成大小写敏感的LIKE方法-->
<plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin" />
<commentGenerator>
<!-- 阻止生成注释 -->
<property name="suppressAllComments" value="true"/>
<!-- 阻止生成的注释包含时间戳 -->
<property name="suppressDate" value="true"/>
</commentGenerator>
<!-- jdbc连接 -->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@20.26.11.7:1521:CSHP04"
userId="sjyyt"
password="sjyyt123">
</jdbcConnection>
<!--<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://20.26.20.84:3306/headline"
userId="sjyytopmg"
password="123456">
</jdbcConnection>-->
<javaTypeResolver>
<!-- 是否强制DECIMAL和NUMERIC类型的字段转换为Java类型的java.math.BigDecimal -->
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成数据库表的实体类 -->
<javaModelGenerator
targetPackage="com.richinfo.mgt.bean"
targetProject="D:/javaProject/richinfo-project-git/zjintfmgr/src/main/java">
<!-- enableSubPackages:如果true会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性 -->
<property name="enableSubPackages" value="true" />
<!-- 自动去掉不必要的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- *Mapper.xml-->
<sqlMapGenerator
targetPackage="com.richinfo.mgt.dao"
targetProject="D:/javaProject/richinfo-project-git/zjintfmgr/src/main/resource">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- *Mapper.java 也就是接口dao -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.richinfo.mgt.dao"
targetProject="D:/javaProject/richinfo-project-git/zjintfmgr/src/main/java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- tableName为对应的数据库表 domainObjectName是要生成的实体类 不生成Example配置 -->
<!-- <table tableName="SP_ADVERTS" domainObjectName="SpAdverts"
enableCountByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
enableUpdateByExample="false">
</table>
-->
<!--NUMBER类型默认情况下的转换规则为:
如果精度>0或者长度>18,就会使用java.math.BigDecimal
如果精度=0并且10<=长度<=18,就会使用java.lang.Long
如果精度=0并且5<=长度<=9,就会使用java.lang.Integer
如果精度=0并且长度<5,就会使用java.lang.Short -->
<!-- tableName为对应的数据库表 domainObjectName是要生成的实体类 生成带EXAMPLE配置 -->
<table tableName="itf_mgt_user" domainObjectName="User">
<columnOverride column="ID" jdbcType="INTEGER" javaType="java.lang.Integer"/>
<columnOverride column="USERNAME" jdbcType="VARCHAR" javaType="java.lang.String"/>
<columnOverride column="PASSWORD" jdbcType="VARCHAR" javaType="java.lang.String"/>
<columnOverride column="ROLE" jdbcType="INTEGER" javaType="java.lang.Integer"/>
<columnOverride column="PHONENUM" jdbcType="VARCHAR" javaType="java.lang.String"/>
<!--<columnOverride column="COMMIT_TIME" jdbcType="DATE" javaType="java.lang.Date"/>
<columnOverride column="MODIFY_TIME" jdbcType="DATE" javaType="java.lang.Date"/>-->
</table>
</context>
</generatorConfiguration>
2、执行create.bat即可
脚本内容:
java -jar mybatis-generator-core-1.3.2.jar -configfile Mybatis_generatorConfig.xml -overwrite
pause