数据库逆向框架代码生成工具: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
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.可以根据自己项目的配置,把生成的代码拷贝到自己的项目中去
User类就是普通的实体类,定义了数据库对应的字段,以及set/get方法
Example类是干嘛的呢?用其它项目中的几个例子还说明一下吧
1.比如在一个项目 我们要删除某个小组下某个用户的信息
?
2.根据小组ID(非主键 更新小组信息)
?
3.(1)模糊查询并且排序 (2)大于等于某个分数 并且小于某个分数的查询
?
?
Example中提供了Critertia,一种面向对象的查询方式,并且根据实体类中字段的属性,生成不同的操作。
当然你也可以根据实际需要直接使用实体类进行增删改查。
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了
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——Maven2.在pom文件中,添加MBG插件,IDE会自动帮我们下载插件
(如果没反应,可以点开右侧Maven Project选项卡刷新以下)
(插件1.3.0有点小bug,不能去掉生成的注释)
?
3.在src/main/resource目录下创建generatorConfig.xml文件
(官方配置以及说明:http://mybatis.github.io/generator/configreference/xmlconfig.html)
?
5.可以根据自己项目的配置,把生成的代码拷贝到自己的项目中去
3生成代码的使用
mybatis设计比较巧妙,Dao层就不用说了,这里主要介绍下实体类User和UserExampleUser类就是普通的实体类,定义了数据库对应的字段,以及set/get方法
Example类是干嘛的呢?用其它项目中的几个例子还说明一下吧
1.比如在一个项目 我们要删除某个小组下某个用户的信息
?
?
?
当然你也可以根据实际需要直接使用实体类进行增删改查。
4一些问题的解决方案
在实际应用中,自己也遇到了一些问题,下面是这些问题的解决方案,欢迎提供更好的方法1.字段默认值问题
在数据库中,一些字段有默认值,比如c_time,我们在insert操作时,不需要这个字段
?
2.分页问题
mybatis没有提供分页的解决方法,可能是因为数据库之间分页的差距比较大
通过修改java代码只能做到内存分页,所以还是需要在sqlmap中添加数据库分页
参考了网上某篇博客的解决方法(地址找不到了),加了分页头和分页尾的,这样只用写内部的sql
可以一定程度下减少错误几率
?
?
ps:2014-3-28
公司用的是ibatis2.3.x 所以使用的
?
需要targetRuntime is MyBatis3 而且不向下兼容
http://mybatis.github.io/generator/configreference/javaClientGenerator.html
2014-9-15
?
相关文章推荐
- 服务端数据库的操作如何不阻塞
- Lucene基础(四)-- 结合数据库使用
- mysql核心类之间关系
- Hibernate连接SQLServer数据库的配置
- (3)mysql优化之sql语句优化
- Oracle中给表添加主键、外键
- sqlite字符反向模糊查找
- C#连接access数据库,无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
- mysql 查询执行的流程
- Linux Oracle10g安装
- redis一个比较大的改变,redis3.0.1 稳定版本发布,支持集群。redis 集群配置 reids Cluster
- 在VMware安装Centos再安装Oracle数据库(个人学习使用)
- mysql 优化
- mysql 逻辑架构
- sqlserver:游标
- redis集群&主从部署
- redis集群配置
- windows 下 mysql 5.6 免安装版配置
- redis主从配置
- mysql 并发控制