栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MybatisPlus

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MybatisPlus

在Config类下创建插件(Bean)
@Configuration
public class MybatisPlusConfig {

    //乐观锁插件
    @Bean
    public MybatisPlusInterceptor lockInterceptor() {
        MybatisPlusInterceptor lockInterceptor = new MybatisPlusInterceptor();
        lockInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return lockInterceptor;
    }

    //分页插件
    @Bean
    public MybatisPlusInterceptor pageInterceptor() {
        MybatisPlusInterceptor pageInterceptor = new MybatisPlusInterceptor();
        pageInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return pageInterceptor;
    }
}
一.乐观锁(需要数据库有version字段)

当要更新一条记录的时候,希望这条记录没有被别人更新;若更新成功,则版本号+1

//乐观锁
    @Test
    void lock(){
        User user = userMapper.selectById(5L);

        user.setName("TestLock");
        user.setEmail("TestLock@qq.com");

        userMapper.updateById(user);
    }
    @Test
    void lock2(){
        //线程1
        User user = userMapper.selectById(5L);
        user.setName("TestLock");
        user.setEmail("TestLock@qq.com");

        //模拟线程2
        User user2 = userMapper.selectById(5L);
        user2.setName("TestLock2");
        user2.setEmail("TestLock2@qq.com");
        userMapper.updateById(user2);

        //乐观锁触发 此次修改不生效
        userMapper.updateById(user);
    }

版本字段 

 执行第一个测试后,可以看到第五条数据的版本号变成了2

执行第二个测试,可以看到最终执行了第一次更新,第二次更新由于乐观锁的存在而失败了

这是由于第一次更新之后,版本号变成了3,而第二次更新需要在版本号2上进行,所以更新失败

二.自动分页
//分页查询
    @Test
    void limit() {
        Page page = new Page<>(2, 3);

        userMapper.selectPage(page,null);

        //获取分页记录表并循环输出
        page.getRecords().forEach(System.out::println);
        //获取数据总行数(不限于当前页)
        System.out.println("total row = " + page.getTotal());
    }

注:page的参数为"当前页数"与"分页行数"

一些基础查询 
    //查询
    @Test
    void query() {
        List users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }

    @Test
    void selectById() {
        User user = userMapper.selectById(1L);
        System.out.println(user);
    }

    @Test
    void selectByBatchIds() {
        List user = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
        user.forEach(System.out::println);
    }

    @Test
    void selectByMap() {
        HashMap map = new HashMap<>();
        map.put("name", "Jone");
        List user = userMapper.selectByMap(map);
        user.forEach(System.out::println);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/959495.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号