这里是修真院后端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析后端知识/技能,本篇分享的是:
【 数据库逆向生成代码】
数据库逆向生成代码_腾讯视频
1.背景介绍
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类,这是理所当然的。但是一般公司里做项目时,没有说既进行完数据库设计后还要再“自己”建立一遍实体类。意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计。
原因:
1、2倍工作量,浪费时间。(时间对公司来说很重要)
2、无法保证两边映射一致。因为两边都是自己设计的,那么就需要人为保证映射关系统一,会有隐患。
3、开发、维护上都不利。因为如果任意一方因某些原因需要改用,那么经常要两边都要改,这样的话映射不一致的可能性不仅更大,而且效率低下。而如果利用正逆向工程的话,则很容易解决。
2、知识剖析
MyBatis Generator (MBG)是一个专门为Mybatis和iBATIS写的代码生成器。它可以为所有版本的Mybatis和2.2.0之后版本的iBATIS生成代码。MBG可以生成一些简单的CRUD的数据库操作,但稍微复杂的sql仍需要自己写。
Pojo类
匹配的主键的类,匹配非主键字段的类(除了BLOB字段),匹配BLOB字段的类,用来处理动态SELECT,DELETE,UPDATE的类。
XML文件
insert
update by primary key
update by example (using a dynamic where clause)
delete by primary key
delete by example (using a dynamic where clause)
select by primary key
select by example (using a dynamic where clause)
count by example
3、编码实战
在resources底下建一个generator.xml配置文件