让 MyBatis Generator 变的更简单

MyBatis 是一个 Java 的 ORM 框架,ORM 的出现就是为了简化开发。最初的开发方式是业务逻辑和数据库查询逻辑是分开的,或者在程序中编写 sql 语句,或者调用 sql 存储过程。这样导致思维需要在语言逻辑和 sql 逻辑之间切换,导致开发效率低下。所以出现了一系列的 ORM 框架,ORM 框架将数据库表和 Java 对象对应起来,当操作数据库时,只需要操作对象的 Java 对象即可,例如设置几个 and 条件,只需要设置几个属性即可。

为什么要有用 MyBatis Generator

虽然说有了 mybatis 框架,但是学习 mybatis 也需要学习成本,尤其是配置它需要的 XML 文件,那也是相当繁琐,而且配置中出现错误,不容易定位。当出现莫名其妙的错误或者有大批量需要生成的对象时,时常会有种生无可恋的感觉在脑中徘徊。故此, MyBatis Generator 应运而生了。

它只需要简单配置,即可完成大量的表到 MyBatis Java 对象的生成工作,不仅速度快,而且不会出错,可让开发人员真正的专注于业务逻辑的开发。

官方提供的 MyBatis Generator 功能比较简单,对于稍微复杂但是开发中必然用到的分页功能、批量插入功能等没有实现,但已经有成熟的插件功能支持。

MyBatis Generator 生成的文件结构

生成的文件包含三类:

  • Model 实体文件,一个数据库表生成一个 Model 实体;
  • ModelExample 文件,此文件和实体文件在同一目录下,主要用于查询条件构造;
  • Mapper 接口文件,数据数操作方法都在此接口中定义;
  • Mapper XML 配置文件; 在配置文件中配置好文件的生成路径,并设置好对应的包名,即可生成对应的目录结构和文件。我将生成目录设置为 test 目录,实体包名设置为 com.fengzheng.dao.entity ,接口包名设置为 com.fengzheng.dao.mapper ,然后生成的文件目录结构如下图所示:

mybatis 官方提供了 MyBatis Generator ,可以通过 xml 配置文件的方式使用,例如自己写调用脚本,或者使用 mvn 插件的方式,其实实现起来还是很简单的。

毕竟我们懒嘛

虽然简单,但还是不够简单,懒嘛,这不就实现了一个更简单的生成方式,通过 web 页面的方式,填写几个关键的配置参数,选好要生成的数据库表即可。

可配置的参数有如下几个

targetRuntime :MyBatis3、MyBatis3Simple、Ibatis2Java2、Ibatis2Java5,默认为 MyBatis3

是否取消注释:生成的文件中默认会有注释内容,可以选择是否取消。

targetProject(文件生成目录):文件最后保存的目录,选择一个本地磁盘上的目录位置。

实体类包名:实体对象的包名。

mapper.xml文件所在目录:xml 文件所在的目录

mapper接口类包名:mapper 接口类的包名

数据库驱动:目前只支持 mysql

数据库连接字符串、数据库用户、数据库用户密码:数据库相关配置

启动方式

方式1:

直接下载源码,然后运行 BuilderApplication 文件,或者使用 mvn 的 spring-boot:run 方式运行

方式2:

下载 kite-mybatis-builder.jar, 运行命令 java -jar -Dserver.port=[port] kite-mybatis-builder.jar 或者 java -jar kite-mybatis-builder.jar 默认在 9090 端口运行

使用方式

如果运行在默认的 9090 端口,打开浏览器访问 http://localhost:9090

  1. 默认打开之后,点击“新建项目”。
  1. 在弹出的项目配置界面,填写上面提到的配置参数
  1. 选择要生成的表,并可在后面配置实体名称,默认规则是各单词首字母大写。
  1. 点击生成按钮,会根据生成结果提示成功或失败。
  2. 生成过的项目会在首页列出来,下次如果还需要生成此数据库的表,可以在之前的项目中重新配置选择即可。

默认已集成了分页

例如:

支持分页查询 例如:

        UserExample userExample = new UserExample();
        userExample.setLimit(5);
        userExample.setOffset(5);
        userExample.setOrderByClause(" id desc ");
        List<User> users = userMapper.selectByExample(userExample);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

关于网站根目录属性问题之我见

现有用户admin,root,apache用户,要求是:admin对网站根目录中文件可以修改和删除,网站运行的是php程序,那么需要上传图片和文件,需要apac...

4155
来自专栏Jed的技术阶梯

Linux用户管理常用命令

以"root:x:0:0:root:/root:/bin/bash"这一行为例,以":"为分隔符,说明每一列的意义

2012
来自专栏Linyb极客之路

优化springboot

在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署。 2. 方...

3103
来自专栏浪淘沙

Flume学习笔记

一、什么是Flume?     Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/...

2123
来自专栏Laoqi's Linux运维专列

gitlab修改默认端口

3.5K7
来自专栏向治洪

Android Studio安装插件Genymotion

Android Studio安装插件的方式其实和Eclipse大同小异。废话不多说,直接上图: ? 区域1:你当前已经安装了的插件 区域2:在线安装 区...

1918
来自专栏zhangdd.com

redis官方集群手动故障转移测试

有的时候在主节点没有任何问题的情况下强制手动故障转移也是很有必要的,比如想要升级主节点的Redis进程,我们可以通过故障转移将其转为slave再进行升级操作来避...

1542
来自专栏崔庆才的专栏

Requests库作者Kenneth Reitz的另一神作!虚拟环境及包管理工具Pipenv!

我们在运行 Python 项目的时候经常会遇到一些版本问题,例如 A 项目依赖于 Django 1.5,而 B 项目又依赖 Django 2.0,而我们的系统却...

3838
来自专栏Janti

JVM活学活用——优化springboot

介绍 在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署。 ...

2.2K10
来自专栏土豆专栏

Java Web入门基础之Tomcat

可以这么理解Tomcat:开源的Web应用服务器,一般用于中小型系统和并发访问用户不是很多的情况下,是开发和调试JSP的首选。对于一个初学者来说,可以这样认为,...

4266

扫码关注云+社区

领取腾讯云代金券