MyBatis最牛逼 IDEA 插件,功能强大,帮你节省95%代码量!

下载安装

地址:

https://github.com/gejun123456/MyBatisCodeHelper-Pro

安装

Intellij最新插件MybatisCodeHelper-2.8.1-191-201,使用方法IDEA顶部菜单:Tools -> MybatisCodeHelper -> Activation -> OfflineActivation,在offline key框输入任意字符串

bfc59dbee75c5722d1d9e15e11fe4d8b.jpeg

配置

数据库用的tinyInt 或者 smallInt生成java类型是 byte 和 short 两种类型。在java代码里面操作 byte 和 short 类型比较麻烦,经常需要强制转换,下面是设置使用Integer 来替代byte和short还有使用Java8的日期时间类型

ea049b6a673f27cf0eaa418fc4542306.jpeg

使用

Maven依赖

创建Maven项目,为保证生成的代码不出错误提示,导入依赖:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.4</version>
</dependency>

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.10</version>
</dependency>

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.1.11</version>
</dependency>
<!-- 保证生成的Service层的注解不错 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.1.RELEASE</version>
</dependency>
根据实体类生成建表sql

按alt+insert

18ba75756e00118703b9f294de43e95d.png4940907b3d9c157217d0d8d5cceaf65f.png

生成的SQL语句:

550e3c534e22fbdd7fb2b8fa188941df.png

生成好了建表语句后,到数据库中执行, 然后从数据库来生成crud代码

根据表生成Bean、Dao+mapper和Service

第一步:在Intellij中连接上MySQL数据库,在指定的表上右键

0c5fe37deae8fe5e605c2a09e41ad354.png

第二步:配置生成信息

301ffd7397ce98338bbce0a6521afc9a.jpeg

说明:

exampleQuery:会生成一大堆的example文件,xml中的example代码看起来也很乱、建议使用方法名生成sql来替代。

不推荐mapper接口做继承,所以baseClass选项也不要选。现在代码都是自动生成的,mapper做继承仅能减少一些代码量,效率提升不明显。搞了继承后,看mapper接口对应的xml也变得比较麻烦,哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到。建议是每个接口只生成自己需要的xml方法。

-generatedComments选项建议选中,不然会出现如下所示的提示

5c1fad1e70f1c4a1da81c919c5393675.png

第三步:查看各个生成的目录

000374ebff0ed035fc329787bc988973.png

根据接口中的方法名生成对应的mapper

只需要一个方法名,不需要参数和返回值,输入方法名后,按alt+enter–Generate mybatis sql 就可以生成了。

9f52adac62cb0119832e2bcd07ae53e0.gif方法名生成sql时支持if test

a8178ca4518f41bcca56718b7d14285c.gif

一键添加@param注解

按alt+enter,另外面试宝典:https://www.yoodb.com

5b7462ee425c665da54502771dc9b9d1.jpeg结果:

413d2ffea64860b0a2d3ec9230796934.jpeg

生成mapper映射文件中resultMap未使用的字段

光标放到resultmap标签type属性值上 -> alt + enter -> generate unUsed properties

86b0aba685e0af72ec865bdc8395a0ed.png

结果:

c9ed808c80d4ebb33d26615af80f823b.png

根据mapper接口生成mapper映射文件

创建一个接口 -> 光标放到接口名上 -> alt + enter -> generate mybatis mapper for current class -> 选择mapper映射文件位置

40e8f27885055179ba1edbf07dc9e2da.jpeg

生成find方法

根据方法名 直接生成sql代码 方法名有自动提示 单表操作的代码只有写个方法名就好了

find方法

cf8ea02909a64d30d9129e573d07904f.gif
生成update方法
09f1fdbf2dad73f03f99f7edac7cab9e.gif
生成delete方法
6e80a277f4f5731227a5c9c1294a431a.gif
生成count方法
de29f51ab8607a54887817ac5977bbc9.gif
生成测试用例

33b3c0408e8ecce57d53920b090d3e9f.png

生成分页查询 (依赖于 pageHelper)

1c8612ce7109f9c12a7066732c176ec1.png

aec9d02b9d5673d3dd481edef1240659.jpeg

DeptServiceImpl类中就可以查看到刚才生成的带有分页功能的代码。

从表数据导出java insert语句

可用于快速构造测试数据。mybatis系列文章:https://www.yoodb.com/middleware/mybatis/architecture-design.html

eb81ec263a99856dcf4655e0aa5acc89.gif

Dao中方法名的规则

find方法

可以使用 select query get 替代find开头,支持orderBy,distinct, findFirst

23ada5dfb9ae5f8b3b49b2cc718140ae.jpeg

update方法

可以使用modify替代update开头

520e2f72504269c8b66517d553195d9d.png

delete方法

可以使用remove替代delete开头

4cbf98e10dafa0938c1576777347b92f.png

count方法

支持distinct

757d34315253fee1ffa79f44b11f4dbc.png

生成不基于Spring的单元测试

光标定位在Mapper中待生成测试方法的方法声明上按快捷键alt+enter

95be188926651d80afdf73e2dd94a6b2.png

最终生成的测试代码:

public class DaShangMapperTest {
    private static DaShangMapper mapper;

    @BeforeEach
    public static void setUpMybatisDatabase() {
        SqlSessionFactory builder = new SqlSessionFactoryBuilder().build(DaShangMapperTest.class.getClassLoader().getResourceAsStream("mybatisTestConfiguration/DaShangMapperTestConfiguration.xml"));
        //you can use builder.openSession(false) to not commit to database
        mapper = builder.getConfiguration().getMapper(DaShangMapper.class, builder.openSession(true));
    }

    @Test
    public void testInsertDaShang() throws FileNotFoundException {
        mapper.insertDaShang();
    }
}

使用小技巧

查看字段

在mapper.xml文件的字段中按着ctrl键,单击字段,会自动跳转表表的字段中,方便查看各字段的含义:

0b865e3b7ef66ade8e7d88993b2b8799.gif
根据实体类生成sql文件

创建一个实体类,在实体类上右键-generate,公众 号Java精选,回复java面试获取面试资料,支持在线刷题。

9c0bb01598bd7053b19610219c738e17.png

选择generte mybatis files

8540f92927433ff5c795c129bbd3f634.png

b7d808a41cb9ede88b0410dea867c679.png

其中:

  • unique:唯一索引,不可重复;

  • index:普通索引,可重复;

有了表之后就可以创建mapper、mapper.xml、service、serviceImpl了。

作者:梁云亮

https://hcshow.blog.csdn.net/article/details/105511508

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!
最近有很多人问,有没有读者交流群!加入方式很简单,公众号Java精选,回复“加群”,即可入群!

Java精选面试题(微信小程序):3000+道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!
------ 特别推荐 ------
特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,「大咖笔记」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片关注。

点击“阅读原文”,了解更多精彩内容!文章有帮助的话,点在看,转发吧!
  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值