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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wanlong360599336/article/details/71424147

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包路径.用了绝对路径 -->
	<classPathEntry
		location="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方法后,就会自动生成相应的文件了。


猜你喜欢

转载自blog.csdn.net/wanlong360599336/article/details/71424147