• MybatisPlus的基础使用


    1.MybatisPlus与Mybatis的区别?

    mybatis 是一个优秀的基于java的持久层(Dao)框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程

    可以理解MybatisPlus是Mybatis的增强工具,在Mybatis的基础上只做增强不做改边,为简化开发、提高效率而生

    2.如何使用?

    在SpringBoot的项目中,添加进mybaits-plus的springboot的场景包
    在这里插入图片描述

    在导入进去之后,连接我们的数据库。连接数据库的配置在yaml或properties中,跟以往的配置一样。

    spring:
      datasource:
        username: root
        password: root
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
        # useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    当连接数据库完成后,需要建造一个独属于自己的实体类的接口。

    /**
     * 在对应的 Mapper 上面实现基本的接口 BaseMapper
     * 继承了BaseMapper,所有的方法都来自父类
     * 当想要添加方法时,也可以编写自己的扩展方法
     */
    @Repository
    public interface UserMapper extends BaseMapper<User> {
        /**
         * 当继承 BaseMapper后,CRUD已经编写完成
         */
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在测试类中,回填对应的实体类,使用该类即可。

    @Autowired
    private UserMapper userMapper;
    
    • 1
    • 2

    2.1新增

    在测试类中进行测试。

    @Test
    @DisplayName("测试插入")
    public void testInsert(){
        User userOne = new User();
        userOne.setAge(12);
        userOne.setName("王老吉");
        userOne.setEmail("user@example.com");
        int reult = userMapper.insert(userOne);
        System.out.println(reult);
        System.out.println(userOne);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    插入直接创建一个实体类,然后使用接口的insert方法新增即可。

    2.2修改

    @Test
    @DisplayName("测试更新")
    public void testUpdate() {
        User userOne = new User();
        userOne.setId(7);
        userOne.setName("时间自动填充");
        int row = userMapper.updateById(userOne);
        System.out.println(row);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    修改也是一样,跟新增不同的是,设置实体类时,确定好修改的id,然后调用mapper接口的方法即可。

    2.3查询

    @Test
    void contextLoads() {
        // 参数是一个Wrapper,条件构造器,这里不用就先null
        // 查询所有用户
        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查询有很多的方法,这里直接调用mapper接口的selectList方法传入null值,即可查到对应实体类中在数据库里代表的所有数据

    2.4单个查询

    @Test
    @DisplayName("单个查询")
    public void select02(){
        User user = userMapper.selectById(5);
        System.out.println(user);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    框架中也有对应的方法,直接用mapper接口使用方法即可。参数就是数据的ID

    3.总结:

    个人而言,MybatisPlus是比Mybatis更加的省事!包括使用mapper接口,它已经在接口中实现了大量的自适应 sql代码,我们使用只需要调用对应的方法就好。其中还有代码生成器这样的简便功能,谁手动创建目录谁就慢了。
    在这里插入图片描述

  • 相关阅读:
    TypeScript 学习笔记(四):装饰器与高级编程技巧
    Splashtop 远程控制软件即将推出的新功能
    CentOS 7 定时任务 + Shell 脚本自动备份 MySQL 数据库(一次 Halo 建站数据库丢失的教训)
    C++单例模式
    【21天学习挑战赛】直接插入排序
    linux系统nginx常用命令
    接口测试神器Apifox究竟有多香?
    Docker(二)—— 镜像的常用命令
    python的socket模块以及通信相关学习笔记
    解决 sh 和 bash 在执行脚本时的差异:双括号问题
  • 原文地址:https://blog.csdn.net/ZunXin_2580/article/details/126926352