Mybatis 逆向工程使用(Day_17)
有三个方法可以解决所有的问题:接受,改变,离开。不能接受那就改变,不能改变,那就离开。
【何为逆向工程?】
众 所 周 知 ,正向工程就是通过JAVA类的设置来生成对应的数据库表。
MyBatis逆向工程,就是使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件(单表增删改查)。
mybatis需要编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),提高工作效率。
【使用工具】
IntelliJ IDEA 2018.3
【官网】
https://mybatis.org/mybatis-3
【使用步骤】
(1)、添加POM依赖
1 <dependencies>
2 <!--逆向工程需要使用到mybatis-generator-core-->
3 <dependency>
4 <groupId>org.mybatis.generator</groupId>
5 <artifactId>mybatis-generator-core</artifactId>
6 <version>1.3.7</version>
7 </dependency>
8 <!--本次操作中使用的mybatis-->
9 <dependency>
10 <groupId>org.mybatis</groupId>
11 <artifactId>mybatis</artifactId>
12 <version>3.5.6</version>
13 </dependency>
14 <!--连接数据库所需的依赖-->
15 <dependency>
16 <groupId>mysql</groupId>
17 <artifactId>mysql-connector-java</artifactId>
18 <version>5.1.48</version>
19 </dependency>
20 </dependencies>
(2)、新增generatorConfig.xml文件。配置数据库连接、指定生成的文件和位置,以及所要生成的数据库表
generatorConfig.xml文件:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE generatorConfiguration
3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
5
6 <generatorConfiguration>
7 <properties resource="database.properties"/>
8 <context id="testTables" targetRuntime="MyBatis3">
9 <commentGenerator>
10 <!-- 是否去除自动生成的注释 true:是 : false:否 -->
11 <property name="suppressAllComments" value="true" />
12 </commentGenerator>
13 <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
14 <jdbcConnection driverClass="${driver}"
15 connectionURL="${url}" userId="${username}"
16 password="${password}">
17 </jdbcConnection>
18 <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
19 和 NUMERIC 类型解析为java.math.BigDecimal -->
20 <javaTypeResolver>
21 <property name="forceBigDecimals" value="false" />
22 </javaTypeResolver>
23
24 <!-- targetProject:生成PO类的位置 -->
25 <javaModelGenerator targetPackage="com.papercy.smbms.pojo"
26 targetProject=".\src\main\java">
27 <!-- enableSubPackages:是否让schema作为包的后缀 -->
28 <property name="enableSubPackages" value="false" />
29 <!-- 从数据库返回的值被清理前后的空格 -->
30 <property name="trimStrings" value="true" />
31 </javaModelGenerator>
32 <!-- targetProject:mapper映射文件生成的位置 -->
33 <sqlMapGenerator targetPackage="com.papercy.smbms.mapper"
34 targetProject=".\src\main\java">
35 <!-- enableSubPackages:是否让schema作为包的后缀 -->
36 <property name="enableSubPackages" value="false" />
37 </sqlMapGenerator>
38 <!-- targetPackage:mapper接口生成的位置 -->
39 <javaClientGenerator type="XMLMAPPER"
40 targetPackage="com.papercy.smbms.mapper" targetProject=".\src\main\java">
41 <!-- enableSubPackages:是否让schema作为包的后缀 -->
42 <property name="enableSubPackages" value="false" />
43 </javaClientGenerator>
44 <!-- 指定数据库表 -->
45 <table schema="" tableName="smbms_user" domainObjectName="User"></table>
46 <table schema="" tableName="smbms_role" domainObjectName="Role"></table>
47 <table schema="" tableName="smbms_provider" domainObjectName="Provider"></table>
48 <table schema="" tableName="smbms_bill" domainObjectName="Bill"></table>
49 <table schema="" tableName="smbms_address" domainObjectName="Address"></table>
50
51 </context>
52 </generatorConfiguration>
(3)、properties 文件
1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost/smbms?useUnicode=true&characterEncoding=UTF-8
3 username=root
4 password=123456
(4)、添加主程序运行项目
GeneratorSqlmap.java 文件:
1 import org.mybatis.generator.api.MyBatisGenerator;
2 import org.mybatis.generator.config.Configuration;
3 import org.mybatis.generator.config.xml.ConfigurationParser;
4 import org.mybatis.generator.internal.DefaultShellCallback;
5
6 import java.io.File;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 public class GeneratorSqlmap {
11
12 public void generator() throws Exception {
13
14 List<String> warnings = new ArrayList<String>();
15 boolean overwrite = true;
16 // 指定 逆向工程配置文件(绝对路径)
17 File configFile = new File("C:\\PapercyFile\\IDEADemo\\mbatis10\\src\\main\\resources\\generatorConfig.xml");
18 ConfigurationParser cp = new ConfigurationParser(warnings);
19 Configuration config = cp.parseConfiguration(configFile);
20 DefaultShellCallback callback = new DefaultShellCallback(overwrite);
21 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
22 myBatisGenerator.generate(null);
23
24 }
25
26 public static void main(String[] args) throws Exception {
27 try {
28 GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
29 generatorSqlmap.generator();
30 } catch (Exception e) {
31 e.printStackTrace();
32 }
33
34 }
35
36 }
(5)、可能xml文件有不识别现象,在 POM 中添加如下代码。
1 <build>
2 <resources>
3 <resource>
4 <directory>${basedir}/src/main/java</directory>
5 <includes>
6 <include>**/*.xml</include>
7 </includes>
8 </resource>
9 </resources>
10 </build>
(6)、最后执行主程序GeneratorSqlmap,得到结果如图所示,pojo,mapper映射文件:
【结束语】
至此,Mybatis 逆向工程使用 就告一段落了,本篇博客只是使用主程序运行来生成逆向工程,
还有 使用插件 从而运行逆向工程的。 简单介绍下:
mybatis-generator-core :进入https://mvnrepository.com/搜索 MyBatis ,找到 MyBatis Generator Core
如下图 :
从而使用此插件实现逆向工程。
推荐一篇比较详细的使用插件实现逆向工程的(博客):
https://www.cnblogs.com/xqz0618/p/javaweb05.html
我是肥肥也,喜欢就点点【关注】,不喜欢也没关系,喜欢我的人多了去了,又不差你一个~
See you
Mybatis 逆向工程使用(Day_17)的更多相关文章
- mybatis0212 mybatis逆向工程 (MyBatis Generator)
1mybatis逆向工程 (MyBatis Generator) .1什么是mybatis的逆向工程 mybatis官方为了提高开发效率,提高自动对单表生成sql,包括生成 :mapper.xml.m ...
- 【JAVA - SSM】之MyBatis逆向工程的使用
MyBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便实用.下面介绍一下逆向工程的使用方法. 使用逆向工程,我们最好是新建 ...
- Mybatis 逆向工程
Mybatis逆向工程: 推荐用Java和XML Configuration的方式生成逆向文件 Java类: package generation; import java.io.File; impo ...
- mybatis逆向工程
一.背景 在实际开发中我们会自己去写mapper映射文件,接口,数据库表对应的实体类,如果需求任务比较少,咱们还可以慢慢的一个一个去写,但是这是不现实的,因为在工作中我们的任务是很多的,这时mybat ...
- JAVAEE——Mybatis第二天:输入和输出映射、动态sql、关联查询、Mybatis整合spring、Mybatis逆向工程
1. 学习计划 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If标签 b) Where标签 c) Sql片段 d) Foreach标签 3.关联查询 a) 一对 ...
- mybatis框架(7)---mybatis逆向工程
mybatis逆向工程 逆向工程的目的就是缩减了我们的开发时间.所谓mybatis逆向工程,就是mybatis会根据我们设计好的数据表,自动生成pojo.mapper以及mapper.xml. 接 ...
- 学习笔记01(mybatis逆向工程)
今天来看看一个常用的小功能,就是mybatis的逆向工程.(数据库是mysql) 什么是逆向工程呢?看名字就知道反方向的一个什么工程! 其实啊,如果是平常我们自己学习实践一些小项目的时候,应该是先瞎写 ...
- mybatis逆向工程的注意事项,以及数据库表
1.选择性更新,如果有新参数就更换成新参数,如果参数是null就不更新,还是原来的参数 2.mybatis使用逆向工程,数据库建表的字段user_id必须用下滑线隔开,这样生成的对象private L ...
- IDEA Maven项目的Mybatis逆向工程
IDEA Maven项目的Mybatis逆向工程 1.配置.pom 如果是在多模块开发下,该文件逆向工程要生成的那个模块下的pom文件. <build> <plugins> & ...
随机推荐
- 【长文】Spring学习笔记(七):Mybatis映射器+动态SQL
1 概述 本文主要讲述了如何使用MyBatis中的映射器以及动态SQL的配置. 2 MyBatis配置文件概览 MyBatis配置文件主要属性如下: <settings>:相关设置,键值对 ...
- 通过Fiddler 远程 对 安卓手机 iPhone 苹果手机 访问请求抓包 Android IOS14.4 fiddler代理 无法联网
Fiddler 中的设置 1 查看 Fiddler所在 电脑的内网 ip地址. (cmd > ipconfig 查看本机ipv4地址) 2 Fiddler 设置 允许远程设备连接: Fiddl ...
- prometheus入门介绍及相关组件、原理讲解
1:介绍 Prometheus 是由 SoundCloud 开源监控告警解决方案. prometheus是由谷歌研发的一款开源的监控软件,目前已经被云计算本地基金会托管,是继k8s托管的第二个项目. ...
- Vue.js入门及其常用指令
一.Vue框架 https://cn.vuejs.org/ 官网 前端领域有三大框架 Angular诞生于2009年,是由谷歌公司创建出来的框架: React诞生于2013年,是由facebook公司 ...
- OO第一单元总结——求导
一.基于度量分析程序结构 (一)第一次作业 (1)设计思路 本次作业只涉及到简单幂函数通过加减运算而复合而成的函数,因此笔者自然的把函数分成了函数本体以及单个的项两个部分,在笔者的设计中两个类的功能如 ...
- .NET 中的 Worker Service 入门介绍
翻译自 Steve Gordon 2020年3月30日的文章 <WHAT ARE .NET WORKER SERVICES?> [1] 随着 .NET Core 3.0 的发布,ASP.N ...
- js收藏展开与隐藏,返回顶部
var a = document.getElementById("more");var b = document.getElementById("moreList&quo ...
- 指定pdf的格式
爬虫实战[3]Python-如何将html转化为pdf(PdfKit) 前言 前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了.但是,我们获取的只有文章中的文 ...
- hdu 1044 BFS(压缩图)+DFS
题意: 给你起点,终点,图上有墙有路还有宝物,问你在规定时间内能否能到终点,如果能问最多能捡到多少宝物. 思路: 看完这个题目果断 BFS+三维的mark ...
- DVWA之File Inclusion
File Inclusion File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),req ...