使用MyBatis Generator代码生成器的简单模式

在动态web项目的lib目录下放入mybatis-3.2.2jar、mysql-connector-java-5.1.25-bin.jar、log4j-1.2.17.jar
还有生成器的jar包mybatis-generator-core-1.3.2.jar(1.3.1版本不支持MyBatis3Simple格式),添加到build path,
在src目录下创建cn.java17.pojo和cn.java17.dao两个目录,
还有添加一个log4j.properties文件,
之后再在项目路径下创建mbg.xml文件内容如下:
<?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>
  <!-- 指定数据库连接的jar包 -->
  <!-- <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" /> -->
  <context id="MySQLTables"  targetRuntime="MyBatis3Simple" >
  <!-- 是否去除自动生成的注释 true:是 : false:否 -->
     <commentGenerator>
         <property value="true" name="suppressAllComments"/>
    </commentGenerator>
    <jdbcConnection driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://127.0.0.1:3306/smbms"
        userId="root"
        password="123456">
    </jdbcConnection>
    <!-- 要不要强制转化为大数据类型 -->
    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- 指定生成javabean的包 -->
    <javaModelGenerator targetPackage="cn.java17.pojo" targetProject=".\src">
      <!-- 子包也可以 -->
      <property name="enableSubPackages" value="true" />
      <!-- 生成去除掉前后空格 -->
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <!-- 指定生成映射器xml文件的位置 -->
    <sqlMapGenerator targetPackage="cn.java17.dao"  targetProject=".\src">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
    <!-- 指定生成映射器java类文件的位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="cn.java17.dao"  targetProject=".\src">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
  <!-- 指定要生成的表名 -->
    <table tableName="smbms_address" domainObjectName="Address" >
    </table>
    <table tableName="smbms_bill" domainObjectName="Bill" >
    </table>
    <table tableName="smbms_provider" domainObjectName="Provider" >
    </table>
    <table tableName="smbms_role" domainObjectName="Role" >
    </table>
    <table tableName="smbms_user" domainObjectName="User" >
    </table>
  </context>
</generatorConfiguration>
创建用于执行生成MyBatis相关文件带main函数的class如下:
 1 import java.io.File;
 2 import java.util.ArrayList;
 3 import java.util.List;
 4 import org.mybatis.generator.api.MyBatisGenerator;
 5 import org.mybatis.generator.config.Configuration;
 6 import org.mybatis.generator.config.xml.ConfigurationParser;
 7 import org.mybatis.generator.internal.DefaultShellCallback;
 8 
 9 public class TestMBG {
10     public static void main(String[] args) throws Exception {
11         List<String> warnings = new ArrayList<String>();
12         boolean overwrite = true;
13         File configFile = new File("mbg.xml");
14         ConfigurationParser cp = new ConfigurationParser(warnings);
15         Configuration config = cp.parseConfiguration(configFile);
16         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
17         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
18         myBatisGenerator.generate(null);
19     }
20 }

执行以上代码即可生成相应的MyBatis映射文件和pojo文件。其中overwrite如果是true代表,后面再次生成的文件是覆盖前面生成的同名文件,

如果生成的文件修改过,要保留修改痕迹,请慎重,把overwrite改成false。

其中context元素下的targetRuntime="MyBatis3Simple",指生成的pojo文件不生成相应的example示例文件,而且生成的映射接口文件

不产生复杂的增删改查函数和对应pojo中example文件的示例映射文件,只生成一些简单的增删改查文件,

而javaModelGenerator、sqlMapGenerator、javaClientGenerator等元素的targetPackage属性是用于指定

文件生成到哪个包路径下,而targetProject属性是用于设置这些包在哪个Source Folder下,写.\src指的是本项目的src目录。

生成器生成的代码不一定涵盖你需要的所有功能,大家可以自己在这些基础上自行扩展。

 生成器的jar文件来源于https://github.com/mybatis/generator/releases

 
 

 

posted @ 2018-07-26 19:26  摩斯  阅读(401)  评论(0编辑  收藏  举报