Sts集成Mybatis Generator

最近准备用springboot开发一个web项目,持久化工具使用mybatis,相比hibernate的无sql化,mybatis更灵活一些,但是要写一个个的配置文件,也是件很烦的事,自然就考虑mybatis提供的自动生成工具mybatis generator了。

 

网上搜索了一些使用的文章,但是总是不得其法,甚至下载了一个GUI工具,然而感觉也不太好用,无奈只好看看官方文档怎么说:

http://www.mybatis.org/generator/index.html

文档中说可以作为Eclipse的插件使用,那就尝试一下吧,虽然现在用的是sts,但是sts也不过是eclipse的改版,基本功能应该还有的。下面先从eclipse market安装mybatis generator

1.打开sts的帮助(HELP)菜单下的Eclipse Market

2.在Find中搜索mybatis generator,搜索出来的第一个就是

3.安装Mybatis Generator,因为写这篇文章的时候我已经装完了,就不截图了。在线安装速度比较慢,可以先下载下来后再安装

4.安装完成会提示重启STS,重启就行了

好了,现在开始来给项目自动生成model、dao、和mapping文件

5.项目结构

最上面那个是开始下载的gui方式配置mybatis generator的项目,但是没玩明白,既然用过了,就把链接发一下,表示感谢

https://github.com/zouzg/mybatis-generator-gui

6.按照mybatis的操作

其实是用了谷歌的自动翻译,不然凭我的垃圾英语水平,看懂这些要半个小时...但是写文章肯定要装个逼,看官原谅则个

右键new一个others

点击Finish,然后就在项目下多了个generatorConfig.xml文件,内容如下

按照官方文档说明,jdbcConnection,javaModelGenerator是必须的,sqlMapGenerator在mybatis3以后属于javaClientGenerator的子属性,如果没有javaClientGenerator就不需要配置,意思是就不会生成xml文件了。

table至少要有一个,有多个就写多个

另外,如果使用mysql数据库,不需要配置table的schema属性,所以最后的文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
  <context id="context1">
    <jdbcConnection connectionURL="jdbc:mysql://127.0.0.1:3306/project_manager?useSSL=false" driverClass="com.mysql.jdbc.Driver" password="123456" userId="root" />
    <javaModelGenerator targetPackage="com.dyz.bean" targetProject="projects" />
    <sqlMapGenerator targetPackage="mapping" targetProject="projects/src/main/resources" />
    <javaClientGenerator targetPackage="com.dyz.dao" targetProject="projects" type="XMLMAPPER" />
    <table tableName="t_user"/>
  </context>
</generatorConfiguration>

上面的操作都是按照官方推荐来的,table的配置中不是用schema,另外我们的表也不需要使用columnOverride

接着右键点击配置文件generatorConfig.xml,选择Run as --》Run Mybatis Generator

然后控制台会显示运行信息,创建model,dao和mapping

当前的目录结构

可见Mybatis按照驼峰命名去掉了下划线生成了各种文件,而且还生成了一个实例文件TUserExample。看看dao的接口方法

我们并不希望产生Example,查看文档说明,table有5个和example相关的配置

那我们把之前生成的内容删除掉,再给加上配置后重新执行

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
  <context id="context1">
    <jdbcConnection connectionURL="jdbc:mysql://127.0.0.1:3306/project_manager?useSSL=false" driverClass="com.mysql.jdbc.Driver" password="123456" userId="root" />
    <javaModelGenerator targetPackage="com.dyz.bean" targetProject="projects" />
    <sqlMapGenerator targetPackage="mapping" targetProject="projects/src/main/resources" />
    <javaClientGenerator targetPackage="com.dyz.dao" targetProject="projects" type="XMLMAPPER" />
    <table tableName="t_user" enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false" enableUpdateByExample="false" selectByExampleQueryId="fasle"/>
  </context>
</generatorConfiguration>

再次执行后生成的内容:

少了excample类,dao中也少了若干和example相关的方法,同时也少了一个个人觉得很关键的方法,现在只有根据ID查询对象的方法了,没有根据对象的其他条件查询了,比如在t_user表中,我们肯定希望能根据姓名或者手机号码查询,但是没了这个方法,有点尴尬。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值