1.介绍

官网
说起mybatisx插件,之前一直听同事说多好用,多好用。然后就在同事的诱惑下安装了。安装后最明显的特征,你会发现你的Mapper文件和xml文件有了个mybatis的小图标,点击可以跳转怪方便的。不过工程代码当时早就已经写好了,所以就没有体验生成代码的功能。
然后这个插件就扔一边吃灰了…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s8vpTJhh-1666572273170)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/96ac7c98351e4612b17a7dab3772c99f~tplv-k3u1fbpfcp-zoom-1.image)]

2.开始使用

因为要整一个小程序后台的项目,所以需要查询数据库,因此想到了使用mybatisx插件自动生成代码试试。

2.1 idea连接数据库

1.mybatisx插件需要用idea连接数据库 Database–DataSource–mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bdRGaVsj-1666572273174)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/45a3eee1115a41fc9b473aa2e0a2367c~tplv-k3u1fbpfcp-watermark.image?)]

2.输入数据库连接信息测试连接,然后报错(事实总不会一帆风顺。。。)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NA4L1gqt-1666572273176)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/286cb78664cd4d7d9134fd64ce40fc06~tplv-k3u1fbpfcp-watermark.image?)]

3.按照提示,服务器返回无效的时区。转到“高级”选项卡,手动设置“serverTimezone”属性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a8QP88rc-1666572273179)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3b33308e5e934335948590e91ce1527a~tplv-k3u1fbpfcp-watermark.image?)]

4.设置时区如:UTC(美国) Hongkong (香港) 北京时间GMT%2B8、上海时间Asia/Shanghai
重新测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0nLH8VXi-1666572273180)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8117c7bd50344e9489cbae442c09623f~tplv-k3u1fbpfcp-watermark.image?)]

2.2 使用MybatisX插件

5.连接成功,选择要生成代码的数据表,右键MybatisX-Generator

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fOzdMkBp-1666572273182)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8f07f1baebab47d2bce8ebffe92de449~tplv-k3u1fbpfcp-watermark.image?)]

6.设置项目基本路径、包路径、编码格式,实体类包名称、实体类名,下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UXanBYdR-1666572273184)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b2c6180b84f14ebeb4e8dc9a6c6368a7~tplv-k3u1fbpfcp-watermark.image?)]

7.点击finish
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t14BdvVk-1666572273186)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/be34f21d9b72428793d6f0b4d56a3065~tplv-k3u1fbpfcp-watermark.image?)]

8.查看生成的代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xxEECQtm-1666572273187)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/db67bd854bd543a6b82a353be9f06498~tplv-k3u1fbpfcp-watermark.image?)]

9.生成后
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PkFbBWZ1-1666572273189)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bcda4a443525414da470f6b34a6cb567~tplv-k3u1fbpfcp-watermark.image?)]

2.3测试(翻车)

新增mapper方法

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o8iA5BBM-1666572273197)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5556e1e6f1f044aeb3c30d9a63bd6984~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2CjeMiTY-1666572273199)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/141ab969b0e6432c846b7ea05b4fdc30~tplv-k3u1fbpfcp-watermark.image?)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wKUDQoDb-1666572273202)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1808f505978e4997989b0756902ae249~tplv-k3u1fbpfcp-watermark.image?)]

增加@Mapper注解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eWvLv9l3-1666572273204)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c64be449f8da4468915dc3a18bbcb667~tplv-k3u1fbpfcp-watermark.image?)]

TestController


import com.ctsi.sddx.mapper.XcxBookMapper;
import com.ctsi.sddx.pojo.XcxBook;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Author : lizzu
 * @create 2022/10/8 22:34
 */
@RestController
@RequestMapping("v1/weChat/")
public class TestController {

    @Resource
    XcxBookMapper xcxBookMapper;


    @GetMapping("/getInfo")
    public String getInfo(String userName){
        return "hello: "+userName;
    }


    @GetMapping("/getBookInfo")
    public List<XcxBook> findAllById (Integer id){
        return xcxBookMapper.findAllById(id);
    }
}

报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CIZIwMZ9-1666572273206)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8b194266a87c442ba0f58f190369bab0~tplv-k3u1fbpfcp-watermark.image?)]

查看后台发现生成的表名不对(此时还没有发现根本问题),修改了mapper文件表名后测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kvcFYyB7-1666572273208)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cf724cf82a904e3cbca0008b3ec5be0c~tplv-k3u1fbpfcp-watermark.image?)]

仍然报错
在这里插入图片描述

解决,通过查报错发现原来是表的命名问题mysql 中表和数据库名称不要使用 ‘-’ 命名

修改后测试
在这里插入图片描述

当然这只是mybatisx 插件的基本使用,至于其他用法还是要看官网说明咯。

参考资料

深入Node.js的模块加载机制,手写require函数 - 掘金 (juejin.cn)

mysql 中表和数据库名称不要使用 ‘-’ 命名

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐