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


    参考博客:EasyCode

    下载安装

    下载

    MyBatisCodeHelperPro插件下载地址:MyBatisCodeHelperPro

    安装

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

    配置

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

    使用

    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
    在这里插入图片描述
    在这里插入图片描述
    生成的SQL语句:
    在这里插入图片描述
    生成好了建表语句后,到数据库中执行, 然后从数据库来生成crud代码

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

    第一步:在Intellij中连接上MySQL数据库,在指定的表上右键
    在这里插入图片描述
    第二步:配置生成信息
    在这里插入图片描述
    说明:

    • exampleQuery:会生成一大堆的example文件,xml中的example代码看起来也很乱、建议使用方法名生成sql来替代。
    • 不推荐mapper接口做继承,所以baseClass选项也不要选。现在代码都是自动生成的,mapper做继承仅能减少一些代码量,效率提升不明显。搞了继承后,看mapper接口对应的xml也变得比较麻烦,哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到。 建议是每个接口只生成自己需要的xml方法。
      -generatedComments选项建议选中,不然会出现如下所示的提示
      在这里插入图片描述

    第三步:查看各个生成的目录
    在这里插入图片描述

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

    • 只需要一个方法名,不需要参数和返回值,输入方法名后,按alt+enter–Generate mybatis sql 就可以生成了
      在这里插入图片描述
    • 方法名生成sql时支持if test

    在这里插入图片描述

    一键添加@param注解

    按alt+enter
    在这里插入图片描述
    结果:
    在这里插入图片描述

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

    光标放到resultmap标签type属性值上 -> alt + enter -> generate unUsed properties
    在这里插入图片描述
    结果:
    在这里插入图片描述

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

    创建一个接口 -> 光标放到接口名上 -> alt + enter -> generate mybatis mapper for current class -> 选择mapper映射文件位置
    在这里插入图片描述

    生成find方法

    根据方法名 直接生成sql代码 方法名有自动提示 单表操作的代码只有写个方法名就好了
    find方法
    在这里插入图片描述

    生成update方法

    在这里插入图片描述

    生成delete方法

    在这里插入图片描述

    生成count方法

    在这里插入图片描述

    生成测试用例

    在这里插入图片描述

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

    在这里插入图片描述
    在这里插入图片描述
    在DeptServiceImpl类中就可以查看到刚才生成的带有分页功能的代码。

    从表数据导出java insert语句

    可用于快速构造测试数据
    在这里插入图片描述

    Dao中方法名的规则

    find方法

    可以使用 select query get 替代find开头,支持orderBy,distinct, findFirst
    在这里插入图片描述

    update方法

    可以使用modify替代update开头

    在这里插入图片描述

    delete方法

    可以使用remove替代delete开头

    在这里插入图片描述

    count方法

    支持distinct
    在这里插入图片描述

    生成不基于Spring的单元测试

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

    在这里插入图片描述
    最终生成的测试代码:

    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键,单击字段,会自动跳转表表的字段中,方便查看各字段的含义:在这里插入图片描述

    根据实体类生成sql文件

    创建一个实体类,在实体类上右键-generate
    在这里插入图片描述
    选择generte mybatis files
    在这里插入图片描述
    在这里插入图片描述
    其中:

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

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

    来源:https://hcshow.blog.csdn.net/article/details/105511508
  • 相关阅读:
    bzoj3816 矩阵变换
    bzoj5029 贴小广告
    【BZOJ-1208】宠物收养所 Splay
    【BZOJ-2879】美食节 最小费用最大流 + 动态建图
    【BZOJ-1984】月下“毛景树” 树链剖分
    写在SDOI2016Round1前的To Do List
    BZOJ solve 100 纪念
    BZOJ-1143&&BZOJ-2718 祭祀river&&毕业旅行 最长反链(Floyed传递闭包+二分图匹配)
    【SDOI2009】解题汇总
    BZOJ-1879 Bill的挑战 状态压缩DP
  • 原文地址:https://www.cnblogs.com/konglxblog/p/16729216.html
Copyright © 2020-2023  润新知