mybatis逆向工程总结工具类
逆向工程字面意思就是反向生成工程,和hibernate一样mybatis也有自己的逆向工程工具,hibernate的逆向生成我没有做过,不过我猜大概都已样,再说,hibernate的现在使用很少了,到了使用的时候再去用吧,使用逆向工程时,需要注意的是表之间的关系无法映射出来!也就是说mybatis的逆向工程生成的都是单表操作。
一、mybatis逆向工程开发文档
http://www.mybatis.org/generator/configreference/xmlconfig.html
二、下载mybatis逆向工程开发包
下载jar包,mybatis-generator-core-1.3.2.jar 以及相应的数据库驱动包,文章底部将给出源码和核心包
三、生成代码配置文件
<?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> <!--数据库驱动,最好不要有中文字符,不然会找不到,建议给出驱动的绝对路径-->
<classPathEntry location="D:/workspace/myeclipse_workspae/GeneratorJavaTool/lib/mysql-connector-java-5.1.32.jar" />
<!-- <classPathEntry location="D:/workspace/myeclipse_workspae/GeneratorJavaTool/lib/ojdbc6.jar" /> --> <!-- targetRuntime 可选项,可填值为MyBatis3,MyBatis3Simple(默认的),Ibatis2Java2,Ibatis2Java5 -->
<context id="testTables" targetRuntime="MyBatis3"> <!-- JavaBean 实现 序列化 接口 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/> <!-- genenat entity时,生成toString -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <!-- 规定代码上面的注释规则 -->
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是(关闭注释) : false:否 (打开注释)-->
<property name="suppressAllComments" value="true" />
<!-- 是否打开时间标志 true:关闭时间注释 : false:打开时间注释 -->
<property name="suppressDate" value="true" />
</commentGenerator> <!-- jdbc配置:数据库连接(mysql) -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/qiyuanshop"
userId="root"
password="111">
</jdbcConnection>
<!-- jdbc配置:数据库连接(Oracle) -->
<!-- <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@localhost:1521:orcl"
userId="oa"
password="oa">
</jdbcConnection> --> <!-- mybatis里专门用来处理NUMERIC和DECIMAL类型的策略 -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!-- 实体类生成配置:数据表对应的model 层 (生成po类的位置) -->
<javaModelGenerator targetPackage="com.qiyuan.bean" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator> <!-- 生成sql语句的xml文件:sql mapper 隐射配置文件(映射文件生成的位置) -->
<sqlMapGenerator targetPackage="com.qiyuan.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator> <!-- mapper生成配置:在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.qiyuan.mapper" targetProject=".\src">
<property name="enableSubPackages" value="false" />
</javaClientGenerator> <!-- 要对那些数据表进行生成操作,必须要有一个. -->
<!-- <table tableName="taddress"></table> -->
<table tableName="t_analystic" domainObjectName="TAnalystic" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
四、准备Java程序
开发文档中有,直接粘贴过去
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 GeneratorSqlMap { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指向逆向工程的配置文件(项目根路径不要有中文,如果有的话建议使用绝对路径)
File configFile = new File("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
MyBatisGenerator myBatisGenerator = null;
try {
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
五、运行四种的Java文件代码
项目结构如下:

项目资料链接:链接:https://pan.baidu.com/s/1o9NN0gU 密码:jll2
mybatis逆向工程总结工具类的更多相关文章
- spring boot + mybatis + mybatis逆向工程 --- 心得
1.前言 以前用惯了springMVC框架 ,以SSM 框架 来开发项目 ,现在因为需要,使用spring boot框架,那么mybatis该如何与spring boot结合呢? 结构区别不大,但是 ...
- mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口
搭建项目 一:lib(关于框架的jar包和数据库驱动的jar包) 1,第一步:先把mybatis的核心类库放进lib里
- MyBatis sqlsession 简化 使用工具类创建
2019-04-09 @Test public void Test() throws Exception { // 1.读取配置文件 String resource = "mybatis-c ...
- 工具类:mybatis中使用Threadlocal开启session及关闭session
1.线程容器,给线程绑定一个Object 内容,后只要线程不变,可以随时取出. 1.1 改变线程,无法取出内容. final ThreadLocal threadLocal = new ThreadL ...
- mybatis逆向工程自动生成实体类、接口以及映射Mapper.xml配置文件
Mybatis的逆向工程非常简单,只要一个配置文件和一个Main方法就可以实现,下面以maven工程为例: (1)在pom.xml中引入依赖包 <dependency> <group ...
- mybatis逆向工程工具
mybatis逆向工程 package com.cxy; import java.io.File; import java.util.*; import org.mybatis.generator.a ...
- MyBatis逆向工程生成的Example类的方法总结
很早之前就在项目开发中多次使用MyBatis逆向工程生成的Example类,但一直没有对其下的方法做一个简单的总结,现总结如下:一.mapper接口中的方法解析mapper接口中的部分常用方法及功能如 ...
- SpringBoot整合Redis、mybatis实战,封装RedisUtils工具类,redis缓存mybatis数据 附源码
创建SpringBoot项目 在线创建方式 网址:https://start.spring.io/ 然后创建Controller.Mapper.Service包 SpringBoot整合Redis 引 ...
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
随机推荐
- Delphi XE4 For IOS中程序的调试(虚拟机,真实机和win32)
安装完之后,大家可以看一下XE4可以新建的工程类型: File->New: 是不是多出了FireMonkey Mobile Application这一个选项呀! 然后你再点击这个菜单项,弹出Fi ...
- CentOS 7 Flannel的安装与配置
1. 安装前的准备 etcd 3.2.9 Docker 17.12.0-ce 三台机器10.100.97.236, 10.100.97.92, 10.100.97.81 etcd不同版本之间的差别还是 ...
- 浅析C# Dictionary实现原理
目录 一.前言 二.理论知识 1.Hash算法 2.Hash桶算法 3.解决冲突算法 三.Dictionary实现 1. Entry结构体 2. 其它关键私有变量 3. Dictionary - Ad ...
- RDLC报表学习
RDLC报表由以下三部分构成: 1.制作自己的DateSet集合(就是报表的数据集): 2.制作自己的报表文件.rdlc文件,用于画做报表样式,里面有微软自带的导出和打印功能,其实就为了少做这2个功能 ...
- VC++开发Windows系统全局钩子
本文的大部分内容属于对一篇网文的实践与练习,同时参考的还有一本书,在此向网文与书的作者表示敬意. 这个程序是一个windows系统键盘监控程序,随着开机自动启动,可以监控系统中各用户的键盘,并将按键记 ...
- S11 day 93 RestFramework 之 序列化
1. 表建模 from django.db import models # Create your models here. #文章表 class Article(models.Model): tit ...
- 使用git在gitlab上拉取代码的方法
最近在项目中用到了gitlab,他是一个类似于github的代码托管工具. 因为是第一次使用还不太熟悉,所以在此记录一下. 1.首先需要使用github的注册账号登录gitlab,查看右上角用户头像处 ...
- LINUX中如何查看某个端口是否被占用
之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep ...
- 奇怪的Java题:为什么1000 == 1000返回为False,而100 == 100会返回为True?
如果你运行如下代码: 1 2 3 4 Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = ...
- nacicat premium 快捷键
1.ctrl+q 打开查询窗口 2.ctrl+/ 注释sql语句 3.ctrl+shift +/ 解除注释 4.ctrl+r 运行查询窗口的s ...