逆向工程搭建的一般步骤
一、下载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>
<context id="MybatisGenerator" targetRuntime="MyBatis3">
<!-- 是否去除逆向生成中的注释 true:是;false:否-->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 配置数据库连接信息 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.150:3306/cat?characterEncoding=utf8" userId="root"
password="123456">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 指定javabean 生成的路径 -->
<javaModelGenerator targetPackage="www.nixianggongcheng.com.role.model" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 指定sql映射文件 生成的路径 -->
<sqlMapGenerator targetPackage="www.nixianggongcheng.com.role.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 指定DAO接口 生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="www.nixianggongcheng.com.role.dao"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定每个表的生成策略 表名 生成的类名-->
<table tableName="u_role"></table>
</context>
</generatorConfiguration>
三、编写java启动类,执行逆向工程的配置文件,生成数据库中指定表的model和dao层:(注意:启动类中创建File中的路径是从本项目中开始的,需要找到从项目开始写起,直到找到配置文件的路径即可)
public class MyGenerator {
public void generate() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("conf/GeneratorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
MyGenerator myGenerator = new MyGenerator();
myGenerator.generate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
四、处理下自动生成的model和dao层:需要非常注意一下事项:
model层中:
1、实体类中只有属性和set、get方法,需要自己创建空参构造方法、全参构造方法、重写toString等方法;
dao层中:
1、接口中的方法最好是全部删掉,根据自己的需要重新写自己的方法;
2、配置文件中的实体类与数据库映射的关系中javaType属性最好删掉,不然有可能会对ssm、ssh框架产生异常;配置文件中的sql最好全部删掉,根据自己的需要重新写sql语句;
五、将处理的model和dao层复制到当前工作的项目中去:
将经过处理的model和dao层中的类和配置文件,复制到当前工作开发的项目中去,这样可以快速、高效的开发项目;
总结:通过逆向工程主要是获取model中的实体类和dao层中配置文件中实体类与数据库表的映射关系;