您的位置:首页 > 数据库

数据库逆向框架代码生成工具:MyBatis Generator的使用

2015-05-31 17:15 369 查看
目录[-]

1前言

2搭建逆向工程

3生成代码的使用

4一些问题的解决方案

MyBatis Generator的详细介绍http://mybatis.github.io/generator/index.html

MyBatis Generator With Maven http://mybatis.github.io/generator/running/runningWithMaven.html

1前言

前段时间根据工作需要,使用Spring+Mybatis完成了一个功能模块,领导推荐了MyBatis Generator(以下简称为MBG),可以逆向生成持久层的基本代码,而且mybatis的实现方案比较好,可以自由组合完成比较复杂的查询,当然更复杂的就需要手动写了,下面整理下基本使用

2搭建逆向工程

1.创建一个Maven项目:File——New Project——Maven

2.在pom文件中,添加MBG插件,IDE会自动帮我们下载插件

(如果没反应,可以点开右侧Maven Project选项卡刷新以下)

(插件1.3.0有点小bug,不能去掉生成的注释)

?




3.在src/main/resource目录下创建generatorConfig.xml文件

(官方配置以及说明:http://mybatis.github.io/generator/configreference/xmlconfig.html

?
4.点击Maven Project——项目——Plugins——mybatis generator——Run Maven build





5.可以根据自己项目的配置,把生成的代码拷贝到自己的项目中去

3生成代码的使用

mybatis设计比较巧妙,Dao层就不用说了,这里主要介绍下实体类User和UserExample

User类就是普通的实体类,定义了数据库对应的字段,以及set/get方法

Example类是干嘛的呢?用其它项目中的几个例子还说明一下吧

1.比如在一个项目 我们要删除某个小组下某个用户的信息

?
2.根据小组ID(非主键 更新小组信息)

?
3.(1)模糊查询并且排序 (2)大于等于某个分数 并且小于某个分数的查询

?
?
Example中提供了Critertia,一种面向对象的查询方式,并且根据实体类中字段的属性,生成不同的操作。

当然你也可以根据实际需要直接使用实体类进行增删改查。

4一些问题的解决方案

在实际应用中,自己也遇到了一些问题,下面是这些问题的解决方案,欢迎提供更好的方法

1.字段默认值问题

在数据库中,一些字段有默认值,比如c_time,我们在insert操作时,不需要这个字段

?
可以调用insertSelective方法,传入实体类,方法会根据实体类中存在值的字段动态拼接sql

2.分页问题

mybatis没有提供分页的解决方法,可能是因为数据库之间分页的差距比较大

通过修改java代码只能做到内存分页,所以还是需要在sqlmap中添加数据库分页

参考了网上某篇博客的解决方法(地址找不到了),加了分页头和分页尾的,这样只用写内部的sql

可以一定程度下减少错误几率

?
3.mysql text字段无法识别问题

?
下载:GIT@OSC http://git.oschina.net/lujianing/Mybatis_Generator

ps:2014-3-28

公司用的是ibatis2.3.x 所以使用的

?
?
如果使用 type=XMLMAPPER (xml直接实现dao)

需要targetRuntime is MyBatis3 而且不向下兼容

http://mybatis.github.io/generator/configreference/javaClientGenerator.html

2014-9-15

?
在pom中可以直接配置依赖的数据库 generatorConfig.xml就不需要再配置数据库的jar了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: