mybatis实现反向工程
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实现反向工程相关推荐
- mybatis的反向工程
工具:MyEclipse,数据库Oracle,框架Mybatis 1.mybatis的反向工程会比hibernate的反向工程麻烦一点. 这里需要一个插件myeclipse反向工程插件及模版API.r ...
- Mybatis反向工程
前言 Mybatis也有反向工程,用于通过数据库表生成对应的Mapper接口和mapper.xml文件,与Mybatis-plus的代码生成器不同的是,其主要生成的代码在mapper.xml文件中,包 ...
- 自动生成Mapper文件(基于Mybatis Maven插件)
自动生成Mybatis的Mapper文件 工作中使用mybatis时我们需要根据数据表字段创建pojo类.mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,myba ...
- Mybatis入门(二)
Mybatis入门(二) 一.利用resultMap 复杂类型映射 1.一对一 2.一对多 3.多对多 二.动态sql构建 三. 延迟加载 四.缓存技术 五.mybatis的反向工程 六.#{}和${ ...
- Mybatis Generator逆向工程的使用
MyBatis Generator简介 MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器.它将为所有版本的MyBatis以及版本2.2.0之后的 ...
- 大型分布式redis+solr+Linux+nginx+springmvc+mybatis电商项目-任亮-专题视频课程
大型分布式redis+solr+Linux+nginx+springmvc+mybatis电商项目-45845人已学习 课程介绍 中国移动省级网上商城项目,用于建立网上终端.营销案和号 ...
- mysql 商品规格表_完成后台管理系统功能(九)商品规格列表的展示,添加以及删除...
商品规格的实现图: 规律: 1.同一类商品的规格项分组相同. 2.同一类商品的规格项目是相同的.规格项目是跟商品关联. 3.不同商品规格参数的值是不同的 1 页面效果展示: 2.规格列表的展示功能 用 ...
- 一些文章资讯汇总(框架篇)
各类资讯汇总 写在前面(声明) 常用框架 Netty Spring SpringBoot ORM框架 Mybatis Hibernate 数据库连接池 微服务 Dubbo SpringCloud Du ...
- Springboot工程下使用mybatis反向工程
Springboot工程下使用mybatis逆向工程 1.引言 mybatis是目前很流行的持久层框架,其逆向工程更是大大缩减了我们的开发时间.所谓mybatis逆向工程,就是mybatis会根据我们 ...
最新文章
- Google 选择 Jetty 放弃 Tomcat
- Java设计模式(十四):MVC设计模式
- oracle union详解,Oracle中的union和join
- sourcetree 拉取 一直让输入密码
- bzoj#3456. 城市规划
- java 的转义字符,在正则表达式中应用
- 蓝桥杯51单片机之数码管从点亮到动态时钟的实现【单片机开发初学者必掌握】
- Maven settings.xml
- js中做数字运算时出现的异常,期望值比实际值小太多太多
- 怎样在安卓中实现在锁屏状态下弹出对话框,并可以震动和铃声,就像闹钟似的?...
- 作为程序员的我,接私活有错么?
- HDU 4278 卡特兰,区间DP
- mac 安装mysql5.7_mac 安装 mysql 5.7
- spring cloud day(6) gateway网关
- 牛奶可乐经济学(一)
- 聊聊这个倾注10年的开源CRM项目,如何一步步火爆GitHub!
- 计算机视觉 — BOF图像检索
- 华硕笔记本FH5900VQ 如何利用Winflash更新BIOS
- Vbox中Ubuntu和win7主机文件共享
- 手机摄影中多摄融合理论详解与代码实战
热门文章
- HihoCoder - 1445 后缀自动机二·重复旋律5(后缀自动机)
- HDU - 3026 Chinese Chess(二分图的必经边)
- POJ - 3660 Cow Contest(最短路变形+闭包传递)
- UVA12325Zombie's Treasure Chest 宝箱
- android qq 登陆 简书,使用QQ第三方登录
- linux npm环境变量,linux配置npm环境变量
- 【数据结构】二叉树的存储和遍历
- NOIP2017提高组比赛总结
- 双机调试和windbg的命令
- VC2008中处理CStatic控件的单击STN_CLICKED消息