利用mybatis-generator自动生成代码

一、在pom.xml中导入依赖

<dependency>
	<groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-core</artifactId>
	<version>1.3.7</version>
</dependency>

二、配置generatorConfig.xml文件

		<!DOCTYPE generatorConfiguration
		  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
		  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
		<!-- 配置生成器 -->
		<generatorConfiguration>
			<!-- 
				targetRuntime="MyBatis3Simple": 不会生成与Example相关的方法
				targetRuntime="MyBatis3":默认值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample
				defaultModelType="flat":所有内容(主键,BLOB)等全部生成在一个对象中
				defaultModelType="hierarchical":主键生成一个XXKey对象,BLOB等单独生成一个对象,其他简单属性在一个对象中
				defaultModelType="conditional"(默认值)表主键只有一列,不为该字段生成单独实体类,将该字段合并到基本实体类中
			-->
			<context id="MySQLContext" targetRuntime="MyBatis3" defaultModelType="flat">
				<!-- 配置前置分隔符和后置分隔符 -->
				<property name="beginningDelimiter" value="`"/>
				<property name="endingDelimiter" value="`"/>
				<!-- 配置注释信息 -->
				<commentGenerator>
					<!-- 不生成注释 -->
					<property name="suppressAllComments" value="true"/>
					<property name="suppressDate" value="true"/>
					<property name="addRemarkComments" value="true"/>
				</commentGenerator>
				<!-- 数据库连接配置 -->
				<jdbcConnection driverClass="com.mysql.jdbc.Driver" 
						connectionURL="jdbc:mysql://localhost:3306/db_authouity"
						userId="root" password="123456">
				</jdbcConnection>
				
				<!-- targetPackage:生成实体类存放的包名, targetProject:指定目标项目路径,可以使用相对路径或绝对路径 -->
				<javaModelGenerator targetPackage="entity" targetProject="src\main\java">
					<property name="trimStrings" value="true"/>
				</javaModelGenerator>
				
				<!-- 配置SQL映射器Mapper.xml文件的属性 -->
				<sqlMapGenerator targetPackage="jack.mybatis.authority.mapper" targetProject="src\main\resources"/>
				
				<!-- type="XMLMAPPER":所有的方法都在XML中,接口调用依赖XML文件 -->
				<javaClientGenerator targetPackage="mapper" type="XMLMAPPER" 
										targetProject="src\main\java"/>
										
				<!-- 生成所有表的映射 -->
				<table tableName="%">
					<!-- 配置自增主键 -->
					<generatedKey column="id" sqlStatement="MySQL" />
				</table>		
			</context>
		</generatorConfiguration>

三、编写generator包下面创建Generator.java类

package generator;
import java.io.IOException;
import java.io.InputStream;
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 Generator {
		/*
		 * targetRuntime="MyBatis3Simple", 不生成Example
		 */
		public void generateMyBatis() {
			//MBG执行过程中的警告信息
			List<String> warnings = new ArrayList<String>();
			//当生成的代码重复时,覆盖原代码
			boolean overwrite = true ;
			String generatorFile = "/generator/generatorConfig.xml";
			//String generatorFile = "/generator/generatorConfigExample.xml";
			//读取MBG配置文件
			InputStream is = Generator.class.getResourceAsStream(generatorFile);

			ConfigurationParser cp = new ConfigurationParser(warnings);
			Configuration config;
			try {
				config = cp.parseConfiguration(is);
				DefaultShellCallback callback = new DefaultShellCallback(overwrite);
				//创建MBG
				MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
				//执行生成代码
				myBatisGenerator.generate(null);
			} catch (IOException e) {
				e.printStackTrace();
			} catch (XMLParserException e) {
				e.printStackTrace();
			} catch (InvalidConfigurationException e) {
				e.printStackTrace();
			} catch (SQLException e) {
				e.printStackTrace();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			for (String warning : warnings) {
				System.out.println(warning);
			}
		}

		public static void main(String[] args) {
			Generator generator = new Generator();
			generator.generateMyBatis();
		}
	}

四、运行Generator这个类中的main方法,自动生成成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆晨丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值