这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【如何使用mybatis generator代码生成?】
【修真院java小课堂】
MYBATIS GENERATOR
(1)背景介绍:
MyBatis Generator
MyBatis Generator (MBG) 是一个Mybatis的代码生成器
他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。
这样和数据库表进行交互时不需要创建对象和配置文件。
MBG的解决了对数据库操作有最大影响的一些简单的CRUD(插入,查询,更新,删除)操作。
您仍然需要对联合查询和存储过程手写SQL和对象
(2)知识剖析:
实现MBG的方式
1.使用命令行生成(了解)
2.使用maven插件进行生成(常用)
两种方式使用的generator.xml文件内的配置都是一样的,第一种需要用命令行加载jar包,第二种则需要用编辑器配置pom.xml
使用mybatis generator进行代码生成的操作步骤
第一步:准备数据库、表
第二步:3个依赖和1个插件
mybatis.jar
mybatis-generator-core.jar
mysql-connector-java.jar
mybatis-generator-maven-plugin
第三步:编写配置文件generatorConfig.xml
a.配置数据库连接地址及账号密码
b.生成的Model类存放位置
c.生成的映射文件存放位置
d.指定要生成的表(命名规范)
代码生成的映射文件提供了几种常用的CRUD操作
1.insert()
2.insertSelective()
3.updateByPrimaryKeySelective()
4.updateByPrimaryKey()
5.selectByPrimaryKey()
6.deleteByPrimaryKey()
mybatis-generator的运行过程
连接数据库——》从数据库的表中获取字段——》依据字段生成mapper文件、dao、实体类
生成的方式
1.使用命令行生成
2.使用maven插件进行生成
(3)常见问题:
数据库命名规范和JAVA命名规范不一样的怎么办?
只能逆向生成mapper.xml文件吗,可否生成annotation的mapper呢
(4)解决方案:
1.如不加设置,mybatis-generator会把数据库中的下划线规则自动转化为JAVA中的驼峰规则并生成实体类
2.可以通过generatorConfig.xml设置
将javaclientgenerator参数中的TYPE值由XMLMAPPER改为ANNOTATEDMAPPER即可
(5)编码实战:
(6)拓展思考:
(7)参考文献:
http://mbg.cndocs.ml/quickstart.html
https://gitee.com/free/Mybatis_Utils/blob/master/MybatisGeneator
(8)更多讨论:
1.什么是Example,什么是Criteria?
答:Example类被用来生成任何where子句。它包含一个内部静态类Criteria。这个Criteriz维护一个条件列表,这些条件会被 anded到where子句。 2.createCriteria()方法和or()方法的区别?
答:两个方法都可以用来创建Criteria对象。区别在于首个被crateCriteria方法创建的Criterier对象将自动添加到list of criteria。如果是被or()方法创建,则是添加到the list in all instance。
3.动态sql用起来有什么问题吗?
答:这里只做了一个简单的例子。因为方法名的原因,用起来比较吃力,但是如果以后公司没有代码生成的话,可以学习下。
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
更多内容,可以加入IT交流群565734203与大家一起讨论交流
这里是技能树·IT修真院:,初学者转行到互联网的聚集地
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。