前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis Generator逆向工程-你还在手写mapper吗?

MyBatis Generator逆向工程-你还在手写mapper吗?

作者头像
唔仄lo咚锵
发布2020-09-15 14:35:45
2.4K0
发布2020-09-15 14:35:45
举报

MyBatis Generator逆向工程

  • 什么是逆向工程?
  • 导入jar包
  • 配置文件
  • 生成代码

什么是逆向工程?


简单来说,Mybatis逆向工程可以根据数据库的表来逆向生成相关java代码和sql语句,如mapper.java,mapper.xml。虽然mapper接口及其配置文件我们完全可以自己写,不过当表数量很多,关联复杂时,用MyBatis Generator逆向工程就十分方便了。当然了,我们也可以根据业务逻辑修改其生成的mapper。

导入jar包


将mybatis-generator-core相关jar包导入项目,在maven仓库中搜索mybatis generator,复制代码到pom.xml。

不了解Maven的小伙伴,可以点这里

或者直接下载并导入jar包,github下载地址

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.5</version>
</dependency>

配置文件


新建配置文件mbg.xml,配置数据库连接,指定生成文件及位置,指定待生成的数据库的表等。

代码语言:javascript
复制
<?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>
	<!--这里用的是MyBatis3Simple即简单的增删改查-->
	<!--一般使用MyBatis3-->
  <context id="DB2Tables" targetRuntime="MyBatis3Simple">
    
    <!-- 逆向生成清除注释 -->
    <commentGenerator>
    <property name="suppressAllComments" value="true" />
	</commentGenerator>

      <!-- 数据库连接配置 -->
    <jdbcConnection 
    	driverClass="com.mysql.cj.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/experiment9?serverTimezone=UTC"
        userId="root"
        password="数据库密码">
        <property name="nullCatalogMeansCurrent" value="true"/>
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

	<!-- 指定javaBean逆生成位置 -->
    <javaModelGenerator 
    	targetPackage="cn.csdn.bean" 
    	targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>
	
	<!-- 指定sql映射文件生成的位置 -->
    <sqlMapGenerator 
    targetPackage="mapper"  
    targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>
	
	<!-- 指定dao接口生成的位置,mapper接口 -->
    <javaClientGenerator 
    type="XMLMAPPER" 
    targetPackage="cn.csdn.dao"  
    targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>
	
	<!-- 指定每个表的生成策略 -->
    <table tableName="message" domainObjectName="Message"></table>
    <table tableName="product" domainObjectName="Product"></table>
    <table tableName="revert" domainObjectName="Revert"></table>
    <table tableName="user" domainObjectName="User"></table>

  </context>
</generatorConfiguration>

生成代码


配置完后,官网上逆向生成的方法有很多,如命令行,eclipse插件等,这里介绍用java代码调用。

新建MBGTest.java

代码语言:javascript
复制
package cn.csdn.test;

import java.io.File;
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.internal.DefaultShellCallback;

public class MBGTest {
	public static void main(String[] args) throws Exception {
		 List<String> warnings = new ArrayList<String>();
		   boolean overwrite = true;
		   File configFile = new File("mbg.xml");//注意名字和上文配置文件名字相同
		   ConfigurationParser cp = new ConfigurationParser(warnings);
		   Configuration config = cp.parseConfiguration(configFile);
		   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
		   myBatisGenerator.generate(null);
		   System.out.println("finish");
	}
}

Run As->Java Application

最后控制台打印finish,刷新目录,就有生成的文件了。

原创不易,请勿转载本不富裕的访问量雪上加霜

博主首页:https://blog.csdn.net/qq_45034708

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MyBatis Generator逆向工程
  • 什么是逆向工程?
  • 导入jar包
  • 配置文件
  • 生成代码
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档