mybatis逆向工程的使用

本文介绍了MyBatis逆向工程的概念,它能根据数据库表自动生成Mapper、Mapper XML和POJO等代码,简化开发工作。详细步骤包括在Eclipse或IDEA中导入工程源码,配置generatorConfig.xml,执行GeneratorSqlMapper.java生成代码。注意配置数据库信息,添加log4j.properties以避免报错。文章提供了工程源码的CSDN、GitHub和百度网盘下载链接。
摘要由CSDN通过智能技术生成

什么是逆向工程

我们知道,mybatis是需要自己手写sql语句的,针对这一显现,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、pojo等) j建好数据库sql表的结构后, 我们就可以利用逆向工程直接生成相应的Dao和JavaBean代码, 并且生成的sql语句非常好用,这样能够大大减少我们平时开发的工作量.

如何使用逆向工程生成代码

1、在eclipse中导入逆向工程的项目源码(如果是idea的话可以在eclipse中生成好在把生成的代码copy过去或者去找个idea的工程源码也行)
2、找到逆向工程的xml配置文件(一般命名为generatorConfig.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>
    <context id="testTables" targetRuntime="MyBatis3">
       <commentGenerator>
           <!-- 是否去除自动生成的注释 true:是: false:否 -->
           <property name="suppressAllComments" value="true"/>
       </commentGenerator>
       <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
       <jdbcConnection driverClass="com.mysql.jdbc.Driver"
           connectionURL="jdbc:mysql://localhost:3306/test" userId="root"
           password="123456">
       </jdbcConnection>
       <!--<jdbcConnection driverClass="oracle.jdbc.OracleDriver"
           connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:test"
           userId="test"
           password="test">
       </jdbcConnection> -->
 
       <!-- 默认false,把JDBC DECIMAL和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL和
           NUMERIC 类型解析为java.math.BigDecimal -->
       <javaTypeResolver>
           <property name="forceBigDecimals" value="false"/>
       </javaTypeResolver>
 
       <!-- targetProject:生成PO类的位置 -->
       <javaModelGenerator targetPackage="com.hnkjxy.pojo"
           targetProject=".\src">
           <!--enableSubPackages:是否让schema作为包的后缀 -->
           <property name="enableSubPackages" value="false"/>
           <!-- 从数据库返回的值被清理前后的空格 -->
           <property name="trimStrings" value="true"/>
       </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
       <sqlMapGenerator targetPackage="com.hnkjxy.mapper"
           targetProject=".\src">
           <!--enableSubPackages:是否让schema作为包的后缀 -->
           <property name="enableSubPackages" value="false"/>
       </sqlMapGenerator>
       <!-- targetPackage:mapper接口生成的位置 -->
       <javaClientGenerator type="XMLMAPPER"
           targetPackage="com.hnkjxy.mapper"
           targetProject=".\src">
           <!--enableSubPackages:是否让schema作为包的后缀 -->
           <property name="enableSubPackages" value="false"/>
       </javaClientGenerator>
       
       <!-- 指定数据库表 -->
       <table tableName="teacher" domainObjectName="Teacher"></table><!-- tableName指定表名、domainObjectName指定生成的实体类的类名 -->
	   <table tableName="tb_department" domainObjectName="Department"></table>
	   <table tableName="tb_position" domainObjectName="Position"></table>
	   <table tableName="tb_repair" domainObjectName="Repair"></table>
	   <table tableName="tb_res" domainObjectName="Res"></table>
	   <table tableName="tb_user" domainObjectName="User"></table>
    </context>
</generatorConfiguration>

3、配置好数据库信息后找到GeneratorSqlMapper.java执行主方法即可(没有就自己建一个类就行,自己建的话注意修改下包名)

package 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 GeneratorSqlMapper {
	
	public void generator() throws Exception{
		  List<String> warnings = new ArrayList<String>();
	      boolean overwrite =true;
	      File configFile = new File("src/generatorConfig.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);
	}  
	
	public static void main(String[] args) {
		GeneratorSqlMapper generatorSqlMapper = new GeneratorSqlMapper();
		try {
			generatorSqlMapper.generator();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

运行的时候注意配置文件路径不要写错了哦
运行之后会在控制台看到如下结果(出现如下报红结果是因为未配置log4j属性,添加log4j.properties至src目录下(MAVEN则是resources目录下)即可)
运行结果图
log4j.properties代码如下

# Configure logging for testing: optionally with log file
log4j.rootLogger=DEBUG, stdout
# log4j.rootLogger=WARN, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

如看到log4j报红不舒服则可以添加上诉配置文件

代码生成结果图
在这里插入图片描述

最后再说一下,如果自己建逆向工程的话还要注意导入相关jar包4个固定的jar包加一个数据库连接的jar包,用哪个数据库就要导哪个数据库的jar包哦!(这里使用的是mysql)

工程源码资源

最后奉上工程源码,需要可自取
CSDN地址:https://download.csdn.net/download/qq_38403662/10852062
GitHUb地址:https://github.com/jamesluozhiwei/resources.git
百度网盘地址:链接: https://pan.baidu.com/s/1z7FULtV5Ubp6F7UGYkC1DA 提取码: pvsd 复制这段内容后打开百度网盘手机App,操作更方便哦
如果自己建逆向工程的话需要jar包可去中央仓库下载或者直接下载上面所述的工程源码就行。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值