mybatis系列五:mybatis代码生成工具

来源:互联网 发布:java和tcp端口通讯 编辑:程序博客网 时间:2024/05/10 08:10

1.结构图,包含了自动生成的3个文件:CategoryMapper.java ,CategoryMapper.xml 和 Category.java


首先,你要将生成包放到lib目录下,相关的包:mybatis-generator-core-1.3.2.jar 和 mysql-connector-java-5.1.22-bin.jar


在mysql数据库中新建一张表:

Drop TABLE IF EXISTS `category`;Create TABLE `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `catname` varchar(50) NOT NULL,`catdescription` varchar(200) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在web工程中,建相关的package,如:

com.mybatis.interfaces  用来存放mybatis 接口对象.

com.mybatis.mapper   用来存放sql mapper对应的映射,sql语句等

com.mybatis.model   用来存放与数据库对应的model

com.mybatis.tester   测试包


新建一个配置文件MyBatisConfiguration.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>         <!-- 配置mysql 驱动jar包路径.用了绝对路径 --><classPathEntrylocation="D:\DynamicGenerateMybatis\WebContent\WEB-INF\lib\mysql-connector-java-5.1.22-bin.jar" /><context id="mybatis_mysql_tables" targetRuntime="MyBatis3"> <!-- 为了防止生成的代码中有很多注释,比较难看,加入下面的配置控制 --><commentGenerator><property name="suppressAllComments" value="true" /><property name="suppressDate" value="true" /></commentGenerator> <!-- 注释控制完毕 --> <!-- 数据库连接 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=utf8"userId="root" password="password"></jdbcConnection><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver> <!-- 数据表对应的model 层 --><javaModelGenerator targetPackage="com.mybatis.model"targetProject="src"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator> <!-- sql mapper 隐射配置文件 --><sqlMapGenerator targetPackage="com.mybatis.mapper"targetProject="src"><property name="enableSubPackages" value="true" /></sqlMapGenerator> <!-- 在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.mybatis.interfaces" targetProject="src"><property name="enableSubPackages" value="true" /></javaClientGenerator> <!-- 要对那些数据表进行生成操作,必须要有一个. --><table schema="mybatis" tableName="category" domainObjectName="Category"enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false"selectByExampleQueryId="false"></table></context></generatorConfiguration>


新建一个类GenerateMain.java来测试并生成相应的文件

package com.mybatis.tester;import java.io.File;import java.io.IOException;import java.sql.SQLException;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.exception.InvalidConfigurationException;import org.mybatis.generator.exception.XMLParserException;import org.mybatis.generator.internal.DefaultShellCallback;public class GenerateMain {/** * @param args */public static void main(String[] args) {List<String> warnings = new ArrayList<String>();boolean overwrite = true;String genCfg = "/MyBatisConfiguration.xml";File configFile = new File(GenerateMain.class.getResource(genCfg).getFile());ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = null;try {config = cp.parseConfiguration(configFile);} catch (IOException e) {e.printStackTrace();} catch (XMLParserException e) {e.printStackTrace();}DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = null;try {myBatisGenerator = new MyBatisGenerator(config, callback, warnings);} catch (InvalidConfigurationException e) {e.printStackTrace();}try {myBatisGenerator.generate(null);} catch (SQLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}}

运行main方法后,就会自动生成相应的文件了。


0 0