MyBatis自带的逆向工程
首先在MySQL数据库创建两个表:Employee表和Department表,(用部门表的id作为员工表的外键)
1、需要的jar包有三个(jar包版本号也可以是其他版本号):
mybatis-3.3.0.jar、mybatis-generator-core-1.3.2.jar、mysql-connector-java-5.1.7-bin.jar
2、创建一个Web项目:Eclipse--->File--->New--->Other--->Web--->Dynamic Web Project
3、jar包放在Web Content--->WEB-INF--->lib文件夹下
4、web.xml文件不用写配置
5、在Java Resources文件夹下建一个config文件夹,在config文件夹下创建一个generatorConfig.xml文件,下面的代码就是generatorConfig.xml的内容
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6 <generatorConfiguration> 7 <context id="testTables" targetRuntime="MyBatis3"> 8 <commentGenerator> 9 <!-- 是否去除自动生成的注释 true:是 : false:否 --> 10 <property name="suppressAllComments" value="true" /> 11 </commentGenerator> 12 <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> 13 <jdbcConnection driverClass="com.mysql.jdbc.Driver" 14 connectionURL="jdbc:mysql://localhost:3306/ssm_crud" 15 userId="root" 16 password="root"> 17 </jdbcConnection> 18 <!-- 默认false,把JDBC DECIMAL和NUMERIC类型解析为Integer;为true时把JDBC DECIMAL 19 和NUMERIC类型解析为java.math.BigDecimal--> 20 <javaTypeResolver> 21 <property name="forceBigDecimals" value="false"/> 22 </javaTypeResolver> 23 <!-- targetPorject:生成PO(model)类的位置 --> 24 <javaModelGenerator targetPackage="com.test.model" 25 targetProject=".\src"> 26 <!-- enableSubPackages:是否让schema作为包的后缀 --> 27 <property name="enableSubPackages" value="false"/> 28 <!-- 从数据库返回的值被清理前后的空格 --> 29 <property name="trimStrings" value="true"/> 30 </javaModelGenerator> 31 <!-- targetProject:mapper映射文件生成的位置 --> 32 <sqlMapGenerator targetPackage="com.test.mapper" 33 targetProject=".\src"> 34 <!-- enableSubPackges:是否让schema作为包的后缀 --> 35 <property name="enableSubPackages" value="false"/> 36 </sqlMapGenerator> 37 <!-- targetPackges:mapper接口生成的位置 --> 38 <javaClientGenerator type="XMLMAPPER" targetPackage="com.test.mapper" 39 targetProject=".\src"> 40 <!-- enableSubPackages:是否让schema作为包的后缀 --> 41 <property name="enableSubPackages" value="false"/> 42 </javaClientGenerator> 43 <!-- 指定数据库表,domainObjectName对应的是要生成的model的名字 --> 44 <table tableName="employee" domainObjectName="Employee"></table> 45 <table tableName="department" domainObjectName="Department"></table> 46 </context> 47 </generatorConfiguration>
6、在Java Resources下的src文件夹下分表创建com.test.model、com.test.mapper、com.test.start三个包
7、在com.test.start包下创建一个名为Generator.java的类,写好generatorConfig.xml文件后运行Generator.java的代码就可以生成model的java文件和mapper的java接口文件一个mapper的xml文件了。下面是用于自动生成的Generator.java的类代码
package com.test.start; 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 Generator { public static void main(String[] args) throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("config\\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); System.out.println("逆向工程自动生成代码成功"); } }
8、查看com.test.model包和com.test.mapper包下是否已经生成了文件