天天看点

MBG自动生成sql语句

www.mybatis.org/generator/configreference/xmlconfig.html

pom.xml文件

[html] view plain copy

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  2.   <modelVersion>4.0.0</modelVersion>  
  3.   <groupId>MBG</groupId>  
  4.   <artifactId>MBG</artifactId>  
  5.   <version>0.0.1-SNAPSHOT</version>  
  6.   <packaging>war</packaging>  
  7.   <name/>  
  8.   <description/>  
  9. <properties>  
  10.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  11.   </properties>  
  12.   <dependencies>  
  13.     <dependency>  
  14.       <groupId>junit</groupId>  
  15.       <artifactId>junit</artifactId>  
  16.       <version>3.8.1</version>  
  17.       <scope>test</scope>  
  18.     </dependency>  
  19.   </dependencies>  
  20.   <build>  
  21.     <plugins>  
  22.         <plugin>  
  23.           <groupId>org.mybatis.generator</groupId>  
  24.           <artifactId>mybatis-generator-maven-plugin</artifactId>  
  25.           <version>1.3.5</version>  
  26.           <configuration>  
  27.             <configurationFile>src/main/java/mbg.xml</configurationFile>  
  28.           </configuration>  
  29.         </plugin>  
  30.     </plugins>  
  31.   </build>  
  32. </project>  

配置的xml文件 [html] view plain copy

  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. <generatorConfiguration>  
  6.   <!-- 生成代码 需要一些步骤  
  7.         1  连接数据库 (驱动包 四要素)  
  8.    -->  
  9.   <classPathEntry location="H:\lib\mysql-connector-java-5.1.13-bin.jar" />  
  10.   <!-- 设置生成代码的规则  
  11.           targetRuntime开发环境使用Mybatis的版本  
  12.      -->  
  13.   <context id="DB2Tables" targetRuntime="MyBatis3">  
  14.     <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>  
  15.      <!-- 配置连接mysql四要素 -->  
  16.     <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
  17.         connectionURL="jdbc:mysql://localhost:3306/food"  
  18.         userId="root"  
  19.         password="123">  
  20.     </jdbcConnection>  
  21.     <javaTypeResolver >  
  22.       <property name="forceBigDecimals" value="false" />  
  23.     </javaTypeResolver>  
  24.     <!-- 实体类 bean 带有get和set方法的bean -->  
  25.     <javaModelGenerator targetPackage="cn.et.entity" targetProject="src/main/java">  
  26.       <property name="enableSubPackages" value="true" />  
  27.       <property name="trimStrings" value="true" />  
  28.     </javaModelGenerator>  
  29.     <!-- sql语句相关的xml或者注解的生成包路径 -->  
  30.     <sqlMapGenerator targetPackage="cn.et.dao"  targetProject="src/main/java">  
  31.       <property name="enableSubPackages" value="true" />  
  32.     </sqlMapGenerator>  
  33.     <!-- 生成的接口所在位置 type="ANNOTATEDMAPPER"生成注解开发代码 type="XMLMAPPER"生成相对应的xml文件-->   
  34.     <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.dao"  targetProject="src/main/java">  
  35.     <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  36.       <property name="enableSubPackages" value="true" />  
  37.     </javaClientGenerator>  
  38.     <!-- 告诉mbg 需要生成代码的表 -->  
  39.     <table tableName="student"  >  
  40.     </table>  
  41.   </context>  
  42. </generatorConfiguration>  

如果是myeclipse生成是就会出现一个的错误

`

MBG自动生成sql语句

maven运行方式

mybatis-generator:generate

2.使用java代码生成

[html] view plain copy

  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. <generatorConfiguration>  
  6.     <context id="testTables" targetRuntime="MyBatis3">  
  7.         <commentGenerator>  
  8.             <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
  9.             <property name="suppressAllComments" value="true" />  
  10.         </commentGenerator>  
  11.         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->  
  12.         <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
  13.             connectionURL="jdbc:mysql://localhost:3306/store" userId="root"  
  14.             password="123">  
  15.         </jdbcConnection>  
  16.         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和   
  17.             NUMERIC 类型解析为java.math.BigDecimal -->  
  18.         <javaTypeResolver>  
  19.             <property name="forceBigDecimals" value="false" />  
  20.         </javaTypeResolver>  
  21.         <!-- targetProject:生成PO类的位置 -->  
  22.         <javaModelGenerator targetPackage="com.et.pojo"  
  23.             targetProject=".\src">  
  24.             <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  25.             <property name="enableSubPackages" value="false" />  
  26.             <!-- 从数据库返回的值被清理前后的空格 -->  
  27.             <property name="trimStrings" value="true" />  
  28.         </javaModelGenerator>  
  29.         <!-- targetProject:mapper映射文件生成的位置 -->  
  30.         <sqlMapGenerator targetPackage="com.et.mapper"   
  31.             targetProject=".\src">  
  32.             <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  33.             <property name="enableSubPackages" value="false" />  
  34.         </sqlMapGenerator>  
  35.         <!-- targetPackage:mapper接口生成的位置 -->  
  36.         <javaClientGenerator type="XMLMAPPER"  
  37.             targetPackage="com.et.mapper"   
  38.             targetProject=".\src">  
  39.             <!-- enableSubPackages:是否让schema作为包的后缀 -->  
  40.             <property name="enableSubPackages" value="false" />  
  41.         </javaClientGenerator>  
  42.         <!-- 指定数据库表 -->  
  43.         <table schema="" tableName="tb_content"></table>  
  44.         <table schema="" tableName="tb_content_category"></table>  
  45.         <table schema="" tableName="tb_item"></table>  
  46.         <table schema="" tableName="tb_item_cat"></table>  
  47.         <table schema="" tableName="tb_item_desc"></table>  
  48.         <table schema="" tableName="tb_item_param"></table>  
  49.         <table schema="" tableName="tb_item_param_item"></table>  
  50.         <table schema="" tableName="tb_order"></table>  
  51.         <table schema="" tableName="tb_order_item"></table>  
  52.         <table schema="" tableName="tb_order_shipping"></table>  
  53.         <table schema="" tableName="tb_user"></table>  
  54.     </context>  
  55. </generatorConfiguration>  

运行此方法 [html] view plain copy

  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5. import org.mybatis.generator.api.MyBatisGenerator;  
  6. import org.mybatis.generator.config.Configuration;  
  7. import org.mybatis.generator.config.xml.ConfigurationParser;  
  8. import org.mybatis.generator.exception.XMLParserException;  
  9. import org.mybatis.generator.internal.DefaultShellCallback;  
  10. public class GeneratorSqlmap {  
  11.     public void generator() throws Exception{  
  12.         List<String> warnings = new ArrayList<String>();  
  13.         boolean overwrite = true;  
  14.         //指定 逆向工程配置文件  
  15.         File configFile = new File("generatorConfig.xml");   
  16.         ConfigurationParser cp = new ConfigurationParser(warnings);  
  17.         Configuration config = cp.parseConfiguration(configFile);  
  18.         DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
  19.         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,  
  20.                 callback, warnings);  
  21.         myBatisGenerator.generate(null);  
  22.     }   
  23.     public static void main(String[] args) throws Exception {  
  24.         try {  
  25.             GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();  
  26.             generatorSqlmap.generator();  
  27.         } catch (Exception e) {  
  28.             e.printStackTrace();  
  29.         }  
  30.     }  
  31. }  

目录结构

MBG自动生成sql语句

继续阅读