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

plus和mybatis的区别

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

plus和mybatis的区别

plus和mybatis的区别:puls是增强版,在mybatis上进行了拓展,保留了mybatis的全部功能。plus全面性的优点描述网上总结了很多条可以自行百度补脑一下。下面只简单介绍一下实际开发过程中的不同。

对于业务线的开发人员来说,相比mybatis最大的优点是: 单表的增删改查以及列表分页不需要xml来写sql语句,因为plus提供了一个叫做BaseMapper的接口(在mybatis-plus-core.jar里面),其内部已经提供了相当多的crud操作方法(另外mybatis-plus-extension.jar里面的IService接口也是很类似BaseMapper支持增删改查),BaseMapper接口详细如下

只有当联表查询或者一些复杂的sql才需要像mybatis一样去建立XXXMapper.xml写sql语句,相对而言减少了开发人员的工作量。
plus跟mybatis一样有conctroller层、service层、Mapper接口层。但Mapper接口层如果只有简单的单表的增删改查以及列表分页,则像如下一样继承一下BaseMapper即可。

@Mapper
public interface UserMapper extends BaseMapper {
	// 如果有联表查询或者复杂查询,则跟mybatis一样在这里定义方法和在xml文件里面写sql语句
	// 没有就建立这样一个空文件即可,改一下文件名UserMapper和对应的实体User即可
}

plus定义了那么多现成的方法如何使用呢,下面看下service层的增删改查示例

		User user = new User();
        // user.setXXX();  设置user的各种属性
        
		userMapper.insert(user); // 新增
        userMapper.selectById(user.getId()); // 根据主键id查询 where id = ?

        Map hashMap =new HashMap<>();
        hashMap.put("name",“张三”);
        hashMap.put("sex",“1”);
        userMapper.selectByMap(hashMap); // 根据姓名和性别来查询 where name = "张三" and sex = "1"

        List idList = new ArrayList<>();
        idList.add(1);
        idList.add(2);
        idList.add(3);
        userMapper.selectBatchIds(idList); // 根据id批量查询 where id in (1,2,3)

        Page page = new Page<>(1,10);
        EntityWrapper entityWrapper = new EntityWrapper<>();
        entityWrapper.ge("id", 100);
        userMapper.selectPage(page,entityWrapper); // 分页查询 where id > 100 limit 1,10

        // EntityWrapper 是用来做稍微复杂一点的查询的(plus的BaseMapper里定义的方法不能实现你的需要时用这个)
        // 或者用LambdaQueryWrapper,用法以及内置方法与EntityWrapper 是一样的
        EntityWrapper entity = new EntityWrapper();
        entity.allEq(hashMap); // 全等于 where feild1 = key1 and feild2 = key2 and  ...
        entity.eq("name","张三"); // where name = "张三"
        entity.ne("name","张三"); // where name != "张三"
        // 类似的还有 gt le like notlike orderBy groupBy having等等

        entity.where("id > 100").orNew("id = 10").and("age = 25"); // where id > 100 or (id = 10 and age = 25)

使用后的体验:封装了简单的查询方法,也提供了自定义的查询方法,有点像hibernate的模式了。但总体而言确实减少了不少的sql和xml文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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