MyBatis好帮手,一款功能强大的IDEA插件,帮你节省90%代码量

点击关注公众号,实用技术文章及时了解aacd3e0eba7bddb24992c1da9aebc383.png

下载安装

地址:

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

安装

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

294a60868d43566b4aef3f2b11407868.png
配置

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

064884ad812c7a7cb7b1235b0342323f.png

使用

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

05b1b54681e32b493b6b14ce80157630.png

58f4d818b0b7b4346f67f09c8e85ec73.png生成的SQL语句:

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

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

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

7ae93b1ac89f1f934f052c3011ee1ac9.png第二步:配置生成信息

6efa0f4c2f7b8c5bd8687424d90fe38e.png说明:

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

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

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

4a009ba29382d6f53cde1239eeb4d0f0.png第三步:查看各个生成的目录

767b1dd7cecf309260b43b751a188ffa.png
根据接口中的方法名生成对应的mapper

只需要一个方法名,不需要参数和返回值,输入方法名后,按alt+enter–Generate mybatis sql 就可以生成了。扩展:最全的java面试题库

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

59e218d106191c002846c85330a8de9c.gif

一键添加@param注解

按alt+enter

4ecdf718868ecc4405b03c0ca340eaba.png结果:

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

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

ee355336823e32c6ac23920fbd82ba32.png结果:

eb22d6127c95ebfa7456e3cec66c187c.png
根据mapper接口生成mapper映射文件

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

ddf82bd032822b8a8de54af3ff259099.png
生成find方法

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

find方法

de82472a8aa008007398cfed1733226f.gif
生成update方法
1bf3e5b507e097aa0e832d1fe8c3413d.gif
生成delete方法
b18ee41b8dcf7574c3196354e52cb785.gif
生成count方法
595e67e57060045a9cb5139bf2e85313.gif
生成测试用例
f68c48aaa58581f336dc4728c291d92f.png
生成分页查询 (依赖于 pageHelper)
c323bd3d680a764ab131da39d2de0374.png

ca4b3102b337f3e72c01b7258c8289bc.pngDeptServiceImpl类中就可以查看到刚才生成的带有分页功能的代码。扩展:最全的java面试题库

从表数据导出java insert语句

可用于快速构造测试数据

cfb8577193e039fc981b0d3338cb4945.gif


Dao中方法名的规则

find方法

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

27fd4df926a4eeff386ee0deb073c715.png
update方法

可以使用modify替代update开头

22ebf089133f9139ddd526ba8ccf35f0.png
delete方法

可以使用remove替代delete开头

8773ed95ac4a50f9c8d2666ba529c4b6.png
count方法

支持distinct

04cb9e0982006ab0529860d160b4a102.png

生成不基于Spring的单元测试

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

85804801cd81efa88662bc7c2927fa4a.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键,单击字段,会自动跳转表表的字段中,方便查看各字段的含义:

862835eab120abeccb0dd8a4a958eeb0.gif
根据实体类生成sql文件

创建一个实体类,在实体类上右键-generate

1ba8e8687fce9e3e90c2023d9131cb4e.png选择generte mybatis files

c586d4b06d77442c5d9fd16f95ed17e3.png

99fb2a89aa5caeac0514058da326553b.png其中:

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

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

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

来源:hcshow.blog.csdn.net/article/details/105511508

热门内容:
 
 

656fbf190586877734a111f51e0b5565.jpeg

 
 
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值