mybatis逆向工程总结工具类
逆向工程字面意思就是反向生成工程,和hibernate一样mybatis也有自己的逆向工程工具,hibernate的逆向生成我没有做过,不过我猜大概都已样,再说,hibernate的现在使用很少了,到了使用的时候再去用吧,使用逆向工程时,需要注意的是表之间的关系无法映射出来!也就是说mybatis的逆向工程生成的都是单表操作。
一、mybatis逆向工程开发文档
http://www.mybatis.org/generator/configreference/xmlconfig.html
二、下载mybatis逆向工程开发包
下载jar包,mybatis-generator-core-1.3.2.jar 以及相应的数据库驱动包,文章底部将给出源码和核心包
三、生成代码配置文件
<?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:/workspace/myeclipse_workspae/GeneratorJavaTool/lib/mysql-connector-java-5.1.32.jar" /> <!-- <classPathEntry location="D:/workspace/myeclipse_workspae/GeneratorJavaTool/lib/ojdbc6.jar" /> --> <!-- targetRuntime 可选项,可填值为MyBatis3,MyBatis3Simple(默认的),Ibatis2Java2,Ibatis2Java5 --> <context id="testTables" targetRuntime="MyBatis3"> <!-- JavaBean 实现 序列化 接口 --> <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/> <!-- genenat entity时,生成toString --> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <!-- 规定代码上面的注释规则 --> <commentGenerator> <!-- 是否去除自动生成的注释 true:是(关闭注释) : false:否 (打开注释)--> <property name="suppressAllComments" value="true" /> <!-- 是否打开时间标志 true:关闭时间注释 : false:打开时间注释 --> <property name="suppressDate" value="true" /> </commentGenerator> <!-- jdbc配置:数据库连接(mysql) --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/qiyuanshop" userId="root" password="111"> </jdbcConnection> <!-- jdbc配置:数据库连接(Oracle) --> <!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="oa" password="oa"> </jdbcConnection> --> <!-- mybatis里专门用来处理NUMERIC和DECIMAL类型的策略 --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 实体类生成配置:数据表对应的model 层 (生成po类的位置) --> <javaModelGenerator targetPackage="com.qiyuan.bean" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成sql语句的xml文件:sql mapper 隐射配置文件(映射文件生成的位置) --> <sqlMapGenerator targetPackage="com.qiyuan.mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- mapper生成配置:在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.qiyuan.mapper" targetProject=".\src"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 要对那些数据表进行生成操作,必须要有一个. --> <!-- <table tableName="taddress"></table> --> <table tableName="t_analystic" domainObjectName="TAnalystic" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
四、准备Java程序
开发文档中有,直接粘贴过去
import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class GeneratorSqlMap { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指向逆向工程的配置文件(项目根路径不要有中文,如果有的话建议使用绝对路径) File configFile = new File("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); MyBatisGenerator myBatisGenerator = null; try { Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
五、运行四种的Java文件代码
项目结构如下:
项目资料链接:链接:https://pan.baidu.com/s/1o9NN0gU 密码:jll2