mybatisx 插件的踩坑使用

1,661 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

1.介绍

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

跳转

2.开始使用

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

2.1 idea连接数据库

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

image.png

2.输入数据库连接信息测试连接,然后报错(事实总不会一帆风顺。。。) image.png 3.按照提示,服务器返回无效的时区。转到“高级”选项卡,手动设置“serverTimezone”属性。

image.png

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

image.png

2.2 使用MybatisX插件

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

image.png

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

image.png

7.点击finish image.png

8.查看生成的代码:

image.png 9.生成后 image.png

2.3测试(翻车)

新增mapper方法

image.png image.png

image.png

image.png

增加@Mapper注解 image.png

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);
    }
}

报错 image.png

查看后台发现生成的表名不对(此时还没有发现根本问题),修改了mapper文件表名后测试 image.png

仍然报错 image.png

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

修改后测试

image.png

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

参考资料

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

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