mybatis逆向工程自动生成实体类、接口以及映射Mapper.xml配置文件
Mybatis的逆向工程非常简单,只要一个配置文件和一个Main方法就可以实现,下面以maven工程为例:
(1)在pom.xml中引入依赖包
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
(2)在 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/xssm" userId="root" password="root">
</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.xuebusi.xssm.pojo" targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.xuebusi.xssm.mapper" targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.xuebusi.xssm.mapper" targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表,比如这里指定了数据库中的一张名为x_user的表,每一个table标签对应一张表 -->
<table schema="" tableName="x_user"></table>
</context>
</generatorConfiguration>
(3)编写Main方法,在main方法中指定要读取的generatorConfig.xml 配置文件的位置
package com.xuebusi.xssm.common.generator; 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; import java.io.File;
import java.util.ArrayList;
import java.util.List; /**
* mybatis逆向工程
* 根据配置生成mybatis的实体类、接口以及映射Mapper.xml文件
*/
public class GeneratorMain { public void generator() throws Exception { List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("src/main/java/com/xuebusi/xssm/common/generator/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) throws Exception {
try {
GeneratorMain generatorSqlmap = new GeneratorMain();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
} } }
(4)运行main方法,可以生成4个文件,一个实体类,一个Example类,一个Mapper接口类,一个Mapper.xml映射文件

其中Mapper接口类中是一些增删改查的方法,而Example类用来封装一些条件。
具体使用方法举例:
package com.xuebusi.xssm.service.impl; import com.xuebusi.xssm.mapper.XUserMapper;
import com.xuebusi.xssm.pojo.XUser;
import com.xuebusi.xssm.service.XUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; /**
* Created by SYJ on 2017/12/18.
*/
@Service
public class XUserServiceImpl implements XUserService { @Autowired
private XUserMapper userMapper; /**
* 根据id查询用户
* @param id
* @return
*/
@Override
public XUser selectByPrimaryKey(Integer id) {
XUser user = userMapper.selectByPrimaryKey(id);
return user;
} /**
* 添加用户
* @param user
* @return
*/
@Override
public int insert(XUser user) {
return userMapper.insert(user);
} /**
* 查询所有用户
* @return
*/
@Override
public List<XUser> findAll() {
return userMapper.selectByExample(null);
}
}
mybatis逆向工程自动生成实体类、接口以及映射Mapper.xml配置文件的更多相关文章
- Springboot mybatis  generate 自动生成实体类和Mapper
		
https://github.com/JasmineQian/SpringDemo_2019/tree/master/mybatis Springboot让java开发变得方便,Springboot中 ...
 - mybatis根据数据库表结构自动生成实体类,dao,mapper
		
首先, pom需要引入 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifac ...
 - 利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件
		
1. mybatis-generator-core-1.3.5.jar 下载地址:https://github.com/mybatis/generator/releases 2. msyql-conn ...
 - mybatis generator自动生成 实体类, sqlmap配置文件 详细介绍
		
我使用的是Eclipse Luna 装了自己常用的插件, generator也是其中一个推荐下载 MyBatis_Generator_1.3.1.zip离线安装包 <?xml version=& ...
 - mybatis逆向工程--自动生成实体代码(mybatis-generator)
		
随便找个目录, 添加文件, 如图 主要是两个jar包, generator的下载路径: https://github.com/mybatis/generator/releases 驱动包随 ...
 - MyBatis逆向工程自动生成代码
		
MyBatis逆向工程根据数据库表自动生成mapper.xml,entity类,mapper类,简直不要 太方便好嘛 下面贴上关键配置代码,以免以后找不到 generator.xml <?xml ...
 - Mybatis自动生成实体类、dao接口和mapping映射文件
		
由于Mybatis是一种半自动的ORM框架,它的工作主要是配置mapping映射文件,为了减少手动书写映射文件,可以利用mybatis生成器,自动生成实体类.dao接口以及它的映射文件,然后直接拷贝到 ...
 - Mybatis自动生成实体类
		
Maven自动生成实体类需要的jar包 一.pom.xml中 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
 - (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
		
http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...
 
随机推荐
- KVM虚拟机的创建、管理与迁移
			
[日期:2012-06-01] KVM虚拟机管理 一.环境 role hostname ip OS kvm_server target ...
 - 【C++】不要依赖编译器的默认初始值
			
最好在定义的时候就给出初始值. 类和结构体给出构造函数. 比如int,在vs的debug和release模式下,初始化的值是不同的.
 - SQLDumpSplitter sql文件分割工具
			
数据库误操作,只好使用使用原来的备份数据去恢复数据,但是数据量太大,只好使用SQLDumpSplitter将大文件分割成小文件,然后恢复指定的表即可.
 - 【SqlServer】在SqlServer中把数据导入导出为Excel文件
			
这里笔者介绍利用SqlServer数据库操作EXECEL文件. 1.将Excel表中的数据导入为SqlServer数据库 把Excel表中的数据导入为SqlServer数据库中的数据. 新建一个Exc ...
 - solr 5.3.1安装配置
			
1.下载Solr5.3.1 http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/ wget http://mirror.bit.edu.cn/apach ...
 - 专注做好一件事(转) focus---这个世界上最成功的人,他们在某一领域获得成功之后,可通过经营杠杆进入任何他们想要涉足的领域。而这都得依赖于他们曾极致的专注在做好一件事情上。
 - shell value too great for base
			
今天同步文件的时候发现了这个问题: 原因是: tar_file_month=`date +%m` rsync -auzq --exclude=))"]" 当月是8月,tar_fil ...
 - android 一步一步教你集成tinker(热修复)
			
这几天闲着没事,就看了下现在比较火的热修复,确实有了热修复就解决了android native的一个很尴尬问题,之前比起h5,android在用户体验上是有优势,但是过于复杂的版本更新,使用户烦不胜烦 ...
 - 基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口
			
对于hadoop HDFS 中的全部命令进行解析(当中操作流程是自己的想法有不允许见欢迎大家指正) 接口名称 功能 操作流程 get 将文件拷贝到本地文件系统 . 假设指定了多个源文件,本地目的端必须 ...
 - Sails入门指南
			
1.全局观:sails理念,框架结构 2.试用sails的scaffolding工具,创建model,创建controller, 3.启动server,试用blueprint, 4.进阶: 4.0 数 ...