java10支持mybatis_写了10年的代码,我最怕写Mybatis这些配置,现在有详解了

作者 | 阿进的写字台

链接 | www.cnblogs.com/homejim/p/9782403.html

在使用 mybatis 过程中, 当手写 JavaBean和XML 写的越来越多的时候, 就越来越同意出错。这种重复性的工作, 我们当然不希望做那么多。

还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator。

通过简单的配置, 我们就可以生成各种类型的实体类, Mapper接口, MapperXML文件, Example对象等。通过这些生成的文件, 我们就可以方便的进行单表进行增删改查的操作。

Tips:关注微信公众号:Java后端,获取每日推送。

以下的工具使用的都是 IDEA

1.1 创建Maven项目

1.1.1 菜单上选择新建项目

File | New | Project

1.1.2 选择左侧的Maven

17507530d0ddaedbcbbaee6842ec07e2.png

由于我们只是创建一个普通的项目, 此处点击 Next即可。

1.1.3 输入GroupId和ArtifactId

在我的项目中,

GroupId 填 com.homejim.mybatis

ArtifactId 填 mybatis-generator

点击 Next。

1.1.4Finish

通过以上步骤, 一个普通的Maven项目就创建好了。

1.2 配置 generator.xml

其实名字无所谓, 只要跟下面的 pom.xml 文件中的对应上就好了。

/p>

"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >

driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://localhost:3306/mybatis"

userId="root"

password="jim777"/>

targetPackage="com.homejim.mybatis.entity"

targetProject=".\src\main\java">

targetPackage="mybatis/mapper"

targetProject=".\src\main\resources">

targetPackage="com.homejim.mybatis.mapper"

targetProject=".\src\main\java">

需要改一些内容:

1. 本地数据库驱动程序jar包的全路径(必须要改)。

2. 数据库的相关配置(必须要改)

3. 相关表的配置(必须要改)

4. 实体类生成存放的位置。

5. MapperXML 生成文件存放的位置。

6. Mapper 接口存放的位置。

如果不知道怎么改, 请看后面的配置详解。

1.3 配置 pom.xml

在原基础上添加一些内容。

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">

4.0.0

com.homejim.mybatis

mybatis-generator

1.0-SNAPSHOT

mybatis-generator

org.mybatis.generator

mybatis-generator-maven-plugin

1.3.7

src/main/resources/generator.xml

true

true

Generate MyBatis Artifacts

generate

org.mybatis.generator

mybatis-generator-core

1.3.7

需要注意的是 configurationFile 中的文件指的是 generator.xml。因此路径写的是该文件的相对路径, 名称也跟该文件相同。

到此, mybatis-generator 就可以使用啦。

1.4 使用及测试

1.4.1 打开 Maven Projects 视图

在 IDEA 上, 打开:

View | Tools | Windwos | Maven Projects

1f2fb41216bd050d0de1e39827e20fc2.png

1.4.2 Maven Projects 中双击 mybatis-generator

在右侧此时可以看到 Maven Projects 了。找到 mybatis-generator 插件。

mybatis-generator | Plugins | mybatis-generator | mybatis-generator

48eda617e3d5ccc39da4df80d05967ca.png

1.4.3 双击运行

运行正确后, 生成代码, 得到如下的结构

e51e2578dd9e5112933d176b2244e603.png

仅仅是上面那么简单的使用还不够爽。那么我们就可以通过更改 generator.xml 配置文件的方式进行生成的配置。

2.1 文档

推荐查看官方的文档。

英文不错的:http://www.mybatis.org/generator/configreference/xmlconfig.html

中文翻译版:http://mbg.cndocs.ml/index.html

2.2 官网没有的

2.2.1 property 标签

该标签在官网中只是说用来指定元素的属性, 至于怎么用没有详细的讲解。

2.2.1.1 分隔符相关

以上的配置对应的是 mysql, 当数据库中的字段和数据库的关键字一样时, 就会使用分隔符。

比如我们的数据列是 delete, 按以上的配置后, 在它出现的地方, 就变成 `delete`。

2.2.1.2 编码

默认是使用当前的系统环境的编码, 可以配置为 GBK 或 UTF-8。

我想项目为 UTF-8, 如果指定生成 GBK, 则自动生成的中文就是乱码。

2.2.1.3 格式化

这些显然都是可以自定义实现的的。

2.2.2 plugins 标签

plugins 标签用来扩展或修改代码生成器生成的代码。

在生成的 XML 中, 是没有  这个标签的。该标签是配置缓存的。

如果我们想生成这个标签, 那么可以 plugins 中进行配置。

334c6e67ae57c03bd29fd2e59e48ba51.png

比如你想生成的 JavaBean 中自行实现 Serializable 接口。

d20d9790fe6c258dd753d3a9481a220f.png

还能自定义插件。

这些插件都蛮有用的, 感觉后续可以专门开一篇文章来讲解。

看名称, 就知道是用来生成注释用的。

默认配置:

suppressAllComments: 阻止生成注释, 默认值是false。

suppressDate: 阻止生成的注释包含时间戳, 默认为false。

addRemarkComments: 注释中添加数据库的注释, 默认为 false。

还有一个就是我们可以通过 type 属性指定我们自定义的注解实现类, 生成我们自己想要的注解。自定义的实现类需要实现 org.mybatis.generator.api.CommentGenerator。

2.2.4 源码

https://github.com/homejim/mybatis-cn

e02607d09ee407c2c3fa23a42c695b44.png

推荐阅读

介绍一款贼美的Vue+Element开源后台管理UI

骚操作:不重启 JVM,如何替换掉已经加载的类?

放弃Spring Boot 中的 RestTemplate,我选择 Retrofit !

腾讯 Git 规范出炉,写给开发者的指南!

最棒 Spring Boot 干货总结(超详细,建议收藏)

我的天,Spring Boot 居然还有 Plus 版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webservice-WebService试题

ylbtech-doc:webservice-WebService试题WebService试题 1.A,返回顶部001.{WebService题目}下列是Web服务体系结构中的角色的是()(选择3项) A)服务提供者 B)服务请求者 C&#…

Session的模拟

Session相关的mock Session相关的mock主要有以下两个步骤: 1) HttpContext对象的实例化 session属于HttpContext对象,所以简单来说,就是我们需要构造一个HttpContext,对象然后在给其中的Session附值。然后再把它指定到…

定时自动启动任务crontab命令用法

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://navyaijm.blog.51cto.com/4647068/816636 crontab简介 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的…

9读书1-我在义务发财(1)

母亲说完,父亲就起身出门了。我没出门,上楼到了我的房间里。我要干两件事情:一是写“发财”两个大字贴在我的床头;二是在手上刺青。 //有时候为了达到自己心中说想打目标,必须时时刻刻的提醒自己,这就是一些…

java忽略引号中的分隔符_java – 令牌化但忽略引号内的分隔符

在这种情况下,使用java.util.regex.Matcher更容易使用find()而不是任何类型的拆分.也就是说,不必定义令牌之间的分隔符的模式,您可以为令牌本身定义模式.以下是一个例子:String text "1 2 \"333 4\" 55 6 \"77\" 8 999";// 1 2 &quo…

【转】Tomcat+MyEclipse

TomcatMyEclipse 单位:河南恩湃电力技术有限公司 部门:IT部—应用集成项目组 编写:刘志华 日期:2010-4-19 说明 本文中要讲述在程序开发过程中Tomcat和MyEclipse的一些使用方法和常用配置,本文适用于公司内部所有使用T…

学生管理系统(C语言)

1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #define N 35 #define LEN (Student*) malloc(sizeof(Student))6 /* 学生数据结构 */7 typedef struct node8 {9 char num[20];10 char name[15];11 int score[N];12 int …

linux java usb 串口_2019-11-02 Linux下USB-串口的使用

在实验室配置一台设备要用到串口&#xff0c;但串口线只连到了linux服务器上&#xff0c;又不想跑一趟实验室&#xff0c;就直接用linux串口连吧&#xff0c;以前都在windows上用putty&#xff0c; securecrt软件&#xff0c;还真没直接在linux上使用&#xff0c;查一下命令记录…

C++ STL的基本基本原理

STL都是在内存的堆区分配的&#xff0c;但是其析构也是STL帮我们做好的&#xff0c;不用手动去delete。 1.vector 逻辑地址连续的一片内存空间&#xff0c;当空间不足&#xff0c;重新申请新的地址空间&#xff0c;将原有的数据复制过去&#xff0c;而新的地址空间的大小C没有规…

IE9不支持CSS line-height的文字垂直居中解决方法

IE9不支持line-height原因&#xff1a;中文ie9不支持英文字体 相信大家在IE9看见自己使用line-height设置垂直居中文字不能垂直居中&#xff0c;这是与你设置字体有关&#xff0c;通常大家习惯设置font-family:Arial, Helvetica, sans-serif; ie9中line-height失效解决方法&…

iOS 修改项目名称

2019独角兽企业重金招聘Python工程师标准>>> 1. [代码]iOS 修改项目名称 1 2. [图片] 1.png 3. [图片] 2.png 4. [图片] 3.png 5. [图片] 4.png 6. [图片] 5.png 转载于:https://my.oschina.net/5951008876/blog/681857

java wait源码_Java精通并发-透过openjdk源码分析wait与notify方法的本地实现

上一次https://www.cnblogs.com/webor2006/p/11442551.html中通过openjdk从c的底层来审视了ObjectMonitor的底层实现&#xff0c;这次继续来探究底层&#xff0c;对于wait()和notify()的底层细节到底是啥样的呢&#xff1f;下面还是先来到openjdk中来打开ObjectMonitor.hpp&…

jquery实现多级下拉菜单

支持多种浏览器&#xff0c;体验效果&#xff1a;http://keleyi.com/keleyi/phtml/jqmenu/4.htm多级菜单&#xff0c;理论上支持无限多的层级&#xff0c;文件结构非常简单的&#xff0c;以下是完整代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T…

listActivity和ExpandableListActivity的简单用法

今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。 首先&#xff0c;先说一下listActivity的用法&#xff1a; ListActivity是一个绑定到一个数据源&#xff0c;并且用来显示这一串数据的Activity。ListActivity拥有一个listview对象来实现数据源的绑…

搭建git for windows服务器(100%可以成功)【转】

转自&#xff1a;http://blog.csdn.net/code_style/article/details/38764203 既然Git在linux下面非常好用&#xff0c;为什么还要搭建git windows的服务器&#xff0c;因为不是所有的用户都需要在linux下面做开发&#xff0c;对吧&#xff0c;还有很多用户选择使用windows做开…

eclipser认java源码_java相关:Eclipse查看开发包jar里源代码的方法

java相关&#xff1a;Eclipse查看开发包jar里源代码的方法发布于 2020-5-21|复制链接摘记: Eclipse查看开发包jar里源代码的方法前言&#xff1a;最近我打算学习一下谷歌的类库Guava&#xff0c;下载了Guava-r09.jar包及其源码&#xff0c;为了可以方面的看其源码&#xff0c;我…

php归档函数(按时间)实现

今日开发本站需要用到按时间归档文章的功能&#xff0c;即按文档发布时间将文章文类&#xff0c;以实现检索和统计功能&#xff0c;于是自己写了一个&#xff0c; 现分享给大家&#xff0c;相信大家工作和学习中有可能会用到&#xff0c;实现原理很简单&#xff0c;即取出文章发…

【转】高性能WEB开发系列之重绘与回流

原文转载&#xff1a;http://www.cnblogs.com/wangzhichao/archive/2011/05/16/2047633.html页面呈现流程 在讨论页面重绘、回流之前。需要对页面的呈现流程有些了解&#xff0c;页面是怎么把html结合css等显示到浏览器上的&#xff0c;下面的流程图显示了浏览器对页面的呈现的…

java字符串颠倒位置_java字符串第一个字符与最后一个字符颠倒位置测试

最近做了一个需求&#xff0c;就是 通过OA 连接到我们系统&#xff0c;然后request里 带有base64加密后的字符串&#xff0c;并且第一个与最后一个位置颠倒了&#xff0c;所以需要先恢复正常的加密串&#xff0c;然后在解密。所以首先工作是 先测试还原加密串&#xff0c;就是第…

C#自定义特性实例

元数据,就是C#中封装的一些类,无法修改.类成员的特性被称为元数据中的注释. 1、什么是特性 &#xff08;1&#xff09;属性与特性的区别 属性(Property)&#xff1a;属性是面向对象思想里所说的封装在类里面的数据字段&#xff0c;Get&#xff0c;Set方法。 特性(Attribute): …