Mybatis 可以通过一定的代码,自动生成包括mapper.xml、mapper.java、po等文件;
一、环境准备:
用到的JAR包如下:
文件只有两个:GenMain.java和generatorConfig.xml文件,都放在src目录下。
二、实现方法
1、新建一个JAVA项目,
GenMain.java(主文件)
1 import java.io.File; 2 import java.io.IOException; 3 import java.sql.SQLException; 4 import java.util.ArrayList; 5 import java.util.List; 6 7 import org.mybatis.generator.api.MyBatisGenerator; 8 import org.mybatis.generator.config.Configuration; 9 import org.mybatis.generator.config.xml.ConfigurationParser; 10 import org.mybatis.generator.exception.InvalidConfigurationException; 11 import org.mybatis.generator.exception.XMLParserException; 12 import org.mybatis.generator.internal.DefaultShellCallback; 13 14 public class GenMain { 15 public static void main(String[] args) { 16 List<String> warnings = new ArrayList<String>(); 17 boolean overwrite = true; 18 String genCfg = "generatorConfig.xml"; 19 File configFile = new File(GenMain.class.getResource(genCfg).getFile()); 20 ConfigurationParser cp = new ConfigurationParser(warnings); 21 Configuration config = null; 22 try { 23 config = cp.parseConfiguration(configFile); 24 } catch (IOException e) { 25 e.printStackTrace(); 26 } catch (XMLParserException e) { 27 e.printStackTrace(); 28 } 29 DefaultShellCallback callback = new DefaultShellCallback(overwrite); 30 MyBatisGenerator myBatisGenerator = null; 31 try { 32 myBatisGenerator = new MyBatisGenerator(config, callback, warnings); 33 } catch (InvalidConfigurationException e) { 34 e.printStackTrace(); 35 } 36 try { 37 myBatisGenerator.generate(null); 38 } catch (SQLException e) { 39 e.printStackTrace(); 40 } catch (IOException e) { 41 e.printStackTrace(); 42 } catch (InterruptedException e) { 43 e.printStackTrace(); 44 } 45 } 46 }
配置文件: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/mybatis" 15 userId="root" 16 password="123456"> 17 </jdbcConnection> 18 19 <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 20 NUMERIC 类型解析为java.math.BigDecimal --> 21 <javaTypeResolver> 22 <property name="forceBigDecimals" value="false" /> 23 </javaTypeResolver> 24 25 <!-- targetProject:生成PO类的位置 --> 26 <javaModelGenerator targetPackage="com.itheima.mybatis.po" 27 targetProject=".\src"> 28 <!-- enableSubPackages:是否让schema作为包的后缀 --> 29 <property name="enableSubPackages" value="false" /> 30 <!-- 从数据库返回的值被清理前后的空格 --> 31 <property name="trimStrings" value="true" /> 32 </javaModelGenerator> 33 <!-- targetProject:mapper映射文件生成的位置 --> 34 <sqlMapGenerator targetPackage="com.itheima.mybatis.mapper" 35 targetProject=".\src"> 36 <!-- enableSubPackages:是否让schema作为包的后缀 --> 37 <property name="enableSubPackages" value="false" /> 38 </sqlMapGenerator> 39 <!-- targetPackage:mapper接口生成的位置 --> 40 <javaClientGenerator type="XMLMAPPER" 41 targetPackage="com.itheima.mybatis.mapper" 42 targetProject=".\src"> 43 <!-- enableSubPackages:是否让schema作为包的后缀 --> 44 <property name="enableSubPackages" value="false" /> 45 </javaClientGenerator> 46 <!-- 指定数据库表 --> 47 <table schema="" tableName="user"></table> 48 <table schema="" tableName="orders"></table> 49 <table schema="" tableName="orderdetail"></table> 50 <table schema="" tableName="items"></table> 51 52 <!-- 有些表的字段需要指定java类型 53 <table schema="" tableName=""> 54 <columnOverride column="" javaType="" /> 55 </table> --> 56 </context> 57 </generatorConfiguration>
数据库基本配置和生成文件的目录,都在上述文件中配置;
来源:https://www.cnblogs.com/lrzy/p/8422796.html