最近公司项目比较多,需要我们快速开发节省时间,所以在创建实体和写sql上面我们就不能浪费太多的时间,于是就研究了一下mybatis的逆向生成功能,事实证明效率大幅提升,并且代码也很规范,所以在这分享给大家,写的不好的地方欢迎指出,相互交流。
具体的步骤如下:
1.先下载mybatis-generator-core-1.3.2.jar和mysql-connector-java-5.0.4-bin.jar这两个jar 包;当然也可以直接maven添加,百度即可;这两个的打包下载地址:http://download.csdn.net/download/huxiangen/10264223
2.创建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> <classPathEntry location="D:\mysql-connector-java-5.0.4-bin.jar" /> <context id="Mysql2Tables" targetRuntime="MyBatis3"> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ceshi" userId="root" password="root"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <javaModelGenerator targetPackage="com.test.model" targetProject="src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="com.test.mapper" targetProject="src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.dao" targetProject="src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table schema="test" tableName="CLIENT" domainObjectName="Client" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
3.创建main方法运行,如下:
package com.test.util; import java.io.File; import java.io.IOException; import java.sql.SQLException; 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.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; public class MybatisGeneratorUtil { public static void main(String[] args) { try { System.out.println("start generator ..."); List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File(MybatisGeneratorUtil.class.getResource("/generator.xml").getFile()); ConfigurationParser cp = new ConfigurationParser(warnings); System.out.println("dsdsds"); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); System.out.println("end generator!"); } catch (IOException e) { e.printStackTrace(); } catch (XMLParserException e) { e.printStackTrace(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }
4.将xml中的jdbcConnection链接密码用户改成自己需要逆向生成的数据库链接;
table是设置需要生成的数据库表,tableName是数据库表名,domainObjectName是实体的名字;
javaModelGenerator是指定实体生成的位置;
sqlMapGenerator是指定mapper.xml文件的位置;
javaClientGenerator是指定dao的生成文件位置;
5.直接运行main方法,等待至少4-5秒,然后刷新项目,即可以在指定文件夹下面看到生成的文件;
具体的项目截图:
需要源码的也可以到这个地址下载:http://download.csdn.net/download/huxiangen/10264234