pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
​<groupId>com.henu</groupId><artifactId>mybatis_fanxianggongcheng</artifactId><version>1.0-SNAPSHOT</version>
​<dependencies><!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency>
​
​<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.5</version></dependency>
​<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency>
​<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency>
​<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency>
​<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version></dependency>
​</dependencies>
​
</project>

generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//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/mybatisplus" userId="root"password="123456"></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.henu.pojo"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.henu.mapper"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.henu.mapper"targetProject=".\src"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 指定数据库表 --><table schema="" tableName="dept"></table><table schema="" tableName="emp"></table><table schema="" tableName="user"></table></context>
</generatorConfiguration>

GeneratorSqlmap

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;
​
public class GeneratorSqlmap {
​public void generator() throws Exception{
​List<String> warnings = new ArrayList<String>();boolean overwrite = true;//指定 逆向工程配置文件File configFile = new File("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 {GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();generatorSqlmap.generator();} catch (Exception e) {e.printStackTrace();}
​}
​
}

运行GeneratorSqlmap,当然在这之前你需要把generatorConfig.xml修改为你所需要的情况。

比如:generatorConfig.xml中

<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybatisplus" userId="root"password="123456">
</jdbcConnection>

各种包名的命名自行设置

数据库的指定

<!-- 指定数据库表 -->
<table schema="" tableName="dept"></table>
<table schema="" tableName="emp"></table>
<table schema="" tableName="user"></table>

这是我的指定数据库:

【注】我的generatorConfig.xml路径在这个项目下即:

mybatis_fanxianggongcheng


然后运行-------》》》》》》

生成com包,将其移动到java下。

即:

【注意】将xml文件剪切放入resources中即:

[注意]这里有一个idea的有趣地方,在resources下建立的目录需一层一层建立,如果直接com.henu.mapper并不识别,即先com然后在com下建henu,在henu下建mapper

另外mybatis的配置文件:SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
​<properties resource="jdbcConfig.properties"></properties>
​
​<!--使用typeAliases配置别名,它只能配置bean中类的别名--><typeAliases><package name="com.henu.pojo"></package></typeAliases>
​
​<!-- 配置环境 -->
​<environments default="mysql"><!--配置mysql的环境--><environment id="mysql"><!--配置事务的类型--><transactionManager type="JDBC"></transactionManager><!--配置数据源(连接池)--><dataSource type="POOLED"><!--配置连接数数据库的基本信息--><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments>
​<!--配置映射文件的位置--><mappers><package name="com.henu.mapper"></package></mappers>
​
</configuration>

jdbcConfig.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf8
username=root
password=123456

log4j.properties

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

测试类

package com.henu.test;
​
import com.henu.mapper.UserMapper;
import com.henu.pojo.User;
import com.henu.pojo.UserExample;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
​
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
​
/*** @author George* @description**/
public class MybatisTest {
​private InputStream in;private SqlSession sqlSession;
​@Before //用于测试方法执行之前执行public void init() throws IOException {in = Resources.getResourceAsStream("SqlMapConfig.xml");//2.创建SqlSessionFactory工厂SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//3.使用工厂生成SqlSession对象sqlSession = factory.openSession();}
​
​@After //用于测试方法执行之后执行public void destory() throws IOException {sqlSession.close();in.close();}
​
​@Testpublic void test01(){UserMapper userMapper = sqlSession.getMapper(UserMapper.class);UserExample userExample = new UserExample();UserExample.Criteria criteria = userExample.createCriteria();
​criteria.andIdLessThan(10);List<User> users = userMapper.selectByExample(userExample);for (User user : users) {System.out.println(user);}}@Testpublic void test02(){UserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user1 = userMapper.selectByPrimaryKey(2);System.out.println(user1);}
}

mybatis实现反向工程相关推荐

  1. mybatis的反向工程

    工具:MyEclipse,数据库Oracle,框架Mybatis 1.mybatis的反向工程会比hibernate的反向工程麻烦一点. 这里需要一个插件myeclipse反向工程插件及模版API.r ...

  2. Mybatis反向工程

    前言 Mybatis也有反向工程,用于通过数据库表生成对应的Mapper接口和mapper.xml文件,与Mybatis-plus的代码生成器不同的是,其主要生成的代码在mapper.xml文件中,包 ...

  3. 自动生成Mapper文件(基于Mybatis Maven插件)

    自动生成Mybatis的Mapper文件 工作中使用mybatis时我们需要根据数据表字段创建pojo类.mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,myba ...

  4. Mybatis入门(二)

    Mybatis入门(二) 一.利用resultMap 复杂类型映射 1.一对一 2.一对多 3.多对多 二.动态sql构建 三. 延迟加载 四.缓存技术 五.mybatis的反向工程 六.#{}和${ ...

  5. Mybatis Generator逆向工程的使用

    MyBatis Generator简介 MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为所有版本的MyBatis以及版本2.2.0之后的 ...

  6. 大型分布式redis+solr+Linux+nginx+springmvc+mybatis电商项目-任亮-专题视频课程

    大型分布式redis+solr+Linux+nginx+springmvc+mybatis电商项目-45845人已学习 课程介绍         中国移动省级网上商城项目,用于建立网上终端.营销案和号 ...

  7. mysql 商品规格表_完成后台管理系统功能(九)商品规格列表的展示,添加以及删除...

    商品规格的实现图: 规律: 1.同一类商品的规格项分组相同. 2.同一类商品的规格项目是相同的.规格项目是跟商品关联. 3.不同商品规格参数的值是不同的 1 页面效果展示: 2.规格列表的展示功能 用 ...

  8. 一些文章资讯汇总(框架篇)

    各类资讯汇总 写在前面(声明) 常用框架 Netty Spring SpringBoot ORM框架 Mybatis Hibernate 数据库连接池 微服务 Dubbo SpringCloud Du ...

  9. Springboot工程下使用mybatis反向工程

    Springboot工程下使用mybatis逆向工程 1.引言 mybatis是目前很流行的持久层框架,其逆向工程更是大大缩减了我们的开发时间.所谓mybatis逆向工程,就是mybatis会根据我们 ...

最新文章

  1. Google 选择 Jetty 放弃 Tomcat
  2. Java设计模式(十四):MVC设计模式
  3. oracle union详解,Oracle中的union和join
  4. sourcetree 拉取 一直让输入密码
  5. bzoj#3456. 城市规划
  6. java 的转义字符,在正则表达式中应用
  7. 蓝桥杯51单片机之数码管从点亮到动态时钟的实现【单片机开发初学者必掌握】
  8. Maven settings.xml
  9. js中做数字运算时出现的异常,期望值比实际值小太多太多
  10. 怎样在安卓中实现在锁屏状态下弹出对话框,并可以震动和铃声,就像闹钟似的?...
  11. 作为程序员的我,接私活有错么?
  12. HDU 4278 卡特兰,区间DP
  13. mac 安装mysql5.7_mac 安装 mysql 5.7
  14. spring cloud day(6) gateway网关
  15. 牛奶可乐经济学(一)
  16. 聊聊这个倾注10年的开源CRM项目,如何一步步火爆GitHub!
  17. 计算机视觉 — BOF图像检索
  18. 华硕笔记本FH5900VQ 如何利用Winflash更新BIOS
  19. Vbox中Ubuntu和win7主机文件共享
  20. 手机摄影中多摄融合理论详解与代码实战

热门文章

  1. HihoCoder - 1445 后缀自动机二·重复旋律5(后缀自动机)
  2. HDU - 3026 Chinese Chess(二分图的必经边)
  3. POJ - 3660 Cow Contest(最短路变形+闭包传递)
  4. UVA12325Zombie's Treasure Chest 宝箱
  5. android qq 登陆 简书,使用QQ第三方登录
  6. linux npm环境变量,linux配置npm环境变量
  7. 【数据结构】二叉树的存储和遍历
  8. NOIP2017提高组比赛总结
  9. 双机调试和windbg的命令
  10. VC2008中处理CStatic控件的单击STN_CLICKED消息