逆向工程搭建的一般步骤
一、下载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=".srcmainjava"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 指定sql映射文件 生成的路径 --> <sqlMapGenerator targetPackage="www.nixianggongcheng.com.role.dao" targetProject=".srcmainjava"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 指定DAO接口 生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="www.nixianggongcheng.com.role.dao" targetProject=".srcmainjava"> <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层中配置文件中实体类与数据库表的映射关系;