使用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