mybatis 逆向工程

什么是mybatis逆向工程:

 简单点说mybatis逆向工程是一种机制,针对数据库中的表可以通过逆向工程生成实体类,mapper接口,mapper映射(配置)文件,不用我们自己去写,可以为我们自动生成。

 

为什么使用mybtais逆向工程:

          当一个项目用到的数据库中表很多,数据很多,如果再去手动写实体类,mapper接口和配置文件,会大大降低行进效率,使用逆向工程,可以大大减少重复的配置的创建工作,提升效率。

 

使用逆向工程

1.将逆向工程等依赖导入

<!-- Mybatis 框架 -->
<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.4.6</version>
</dependency>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.30</version>
</dependency>

<!-- 日志依赖 -->
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
</dependency>

<!-- 逆向工程 -->
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-core</artifactId>
   <version>1.3.7</version>
</dependency>

2.编写好日志、jdbc配置文件、mybatis配置文件

 

3.编写逆向工程配置文件

<?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>

 <!-- 指定逆向工程的运行缓存 -->

 <!-- 加载数据库配置文件 -->
 <properties resource="jdbc.properties" />
	
	
 <!-- 一个数据库一个context标签     id:数据库标识(自定义) -->
 <context id="mysql"  targetRuntime="MyBatis3Simple">
	
   <!-- 数据库连接配置 -->
   <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.Url}" userId="${jdbc.User}"  password="${jdbc.Password}">	
   </jdbcConnection>
		
   <!-- java类型解析器 -->
   <javaTypeResolver>
	<!-- 数据库中的数据类型是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
	<property name="forceBigDecimals" value="false" /> <!-- 默认为false -->
   </javaTypeResolver>
		
   <!-- javaBean生成实体类地址    targetPackage:指定实体类生成的目标包    targetProject:指定目标项目  -->
   <javaModelGenerator targetPackage="com.mybatis.bean"  targetProject="src//main//java">
	  <!-- enableSubPackages:是否让schema作为包的后缀 -->
	  <property name="enableSubPackages" value="true" />
	  <!-- 从数据库返回的值清理前后的空格 -->
	  <property name="trimStrings" value="true" />
	</javaModelGenerator>
		
	<!-- 指定生成mapper.xml配置文件 的位置   targetPackage:指定mapper配置文件生成的目标包     targetProject:指定目标项目   -->
	<sqlMapGenerator targetPackage="com.mybatis.dao" targetProject="src\main\resources">
	  <!-- enableSubPackages:是否让schema作为包的后缀 -->
	  <property name="enableSubPackages" value="true" />
	</sqlMapGenerator>
 
	<!-- 指定生成mapper接口的位置 (DAO 接口生成的位置)-->
	<javaClientGenerator targetPackage="com.mybatis.dao" targetProject="src//main//java" type="XMLMAPPER">
	  <!-- enableSubPackages:是否让schema作为包的后缀 -->
	  <property name="enableSubPackages" value="true" />
	</javaClientGenerator>
		
	<!-- 根据数据库指定表生成文件,有一张表就要配置一个table -->
	<!-- tableName:指定数据库表名          domainObjectName:指定生成该表实体类的 class名  --> 
	<table tableName="employee"  domainObjectName="Employee">   </table>
	<table tableName="dept" domainObjectName="Dept"></table>		
		
  </context>
</generatorConfiguration>

测试,调用逆向工程

@Test
public void Test() throws Exception {
		
  //warnings集合用于放置生成过程中生成的警告信息
  List<String> warnings = new ArrayList<String>();
  //定义是否覆盖重名文件
  boolean overwrite = true;
  //指定 逆向工程配置文件
  File configFile = new File("src//main//resources//generator.xml"); 
  //配置解析类
  ConfigurationParser cp = new ConfigurationParser(warnings);
  //配置解析类解析配置文件并生成Configuration对象
  Configuration config = cp.parseConfiguration(configFile);
  //覆盖重名文件
  ShellCallback callback = new DefaultShellCallback(overwrite);
  //逆向工程对象
  MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback, warnings);
                
  //执行
  myBatisGenerator.generate(null);

}

 

结果:  自动生成实体类,持久层接口,mapper映射文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值