优秀网站模板,长治公司网站建设,中国建筑网官网平台,专门做各种产品测评的网站一、介绍
MyBatis和MyBatis-Plus都是Java持久化框架#xff0c;用于简化数据库访问和操作。它们提供了面向对象的方式来管理关系型数据库中的数据。
MyBatis是一个轻量级的持久化框架#xff0c;通过XML或注解配置#xff0c;将SQL语句与Java对象进行映射#xff0c;使开…一、介绍
MyBatis和MyBatis-Plus都是Java持久化框架用于简化数据库访问和操作。它们提供了面向对象的方式来管理关系型数据库中的数据。
MyBatis是一个轻量级的持久化框架通过XML或注解配置将SQL语句与Java对象进行映射使开发者可以使用简单的API来执行数据库操作。MyBatis支持动态SQL、缓存、批处理等功能并与多种数据库兼容。
MyBatis-Plus是在MyBatis的基础上构建的增强版框架。它提供了更多的便利功能和增强特性使开发者能够更加高效地进行数据库访问。MyBatis-Plus内置了常见的CRUD操作方法还提供了代码生成器、分页插件、逻辑删除、多租户支持等功能大大简化了开发流程。
总结而言MyBatis是一个成熟且灵活的持久化框架而MyBatis-Plus则是在此基础上进行了扩展和增强提供了更多的便利功能和工具。选择使用哪个框架取决于项目需求和个人偏好。
二、MyBatis与MyBatis-Plus区别
1、MyBatis:
特点
MyBatis是一款持久层框架它通过XML或注解配置SQL映射关系将数据库操作与Java对象的映射分离。它提供了灵活的SQL编写方式支持动态SQL和批量操作等功能。
优点
1、灵活性高MyBatis通过XML或注解配置SQL语句可以满足各种复杂的SQL需求包括动态SQL、复杂查询等。
2、性能好MyBatis可以手动优化SQL语句保证数据库访问的效率。
3、易于集成MyBatis可以与各种第三方框架如Spring无缝集成使用起来比较方便。
缺点
1、编写工作量大相对于其他ORM框架MyBatis需要手动编写SQL语句会增加一定的开发工作量。
2、学习成本较高MyBatis需要掌握SQL语句的编写和框架的配置对于初学者来说学习曲线较陡峭。
2、MyBatis-Plus
特点
MyBatis-Plus是在MyBatis基础上进行封装的增强工具提供了更便捷的CRUD操作和一些常用功能的封装。
优点
1、简化开发MyBatis-Plus提供了一系列的CRUD操作方法和查询构造器可以极大地简化开发过程减少重复代码的编写。
2、更加易用MyBatis-Plus提供了一些常用功能的封装如分页查询、逻辑删除等开发人员可以更轻松地使用这些功能提高开发效率。
3、自动生成CRUD方法MyBatis-Plus支持根据数据库表自动生成对应的实体类和Mapper接口大大减少了手动编写CRUD方法的工作量。
缺点
1、对于复杂SQL的支持较弱相比于MyBatisMyBatis-Plus在处理一些复杂的SQL语句时可能会有一定的限制。
区别
主要区别如下
1、MyBatis需要手动传递offset和limit参数而MyBatis-Plus使用Page对象来封装分页信息。
2、MyBatis-Plus提供了更简单的API如selectPage()可以自动计算总记录数并返回分页结果。
3、MyBatis-Plus还提供了更多高级的分页查询功能如排序、自定义SQL等。
选择使用哪种方式取决于个人偏好和项目需求。如果你希望更简洁、方便的方式实现分页查询可以考虑使用MyBatis-Plus。
三、MyBatis分页
在MyBatis中分页查询需要使用两个参数offset偏移量和limit限制数量它们用于控制查询结果的起始位置和返回的记录数。下面是一个使用MyBatis进行分页查询的示例
Mapper
public interface UserMapper {ListUser getUsers(Param(offset) int offset, Param(limit) int limit);
}然后在XML映射文件中使用${}占位符来引用这两个参数
select idgetUsers resultTypeUserSELECT * FROM usersLIMIT #{offset}, #{limit}
/select通过传递正确的offset和limit值可以实现分页查询。
四、MyBatis-Plus分页
相比之下MyBatis-Plus提供了更简单的分页查询方式。它引入了一个Page对象该对象封装了与分页相关的信息如当前页码、每页记录数等。下面是使用MyBatis-Plus进行分页查询的示例
Service
public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic PageUser getUsers(int pageNo, int pageSize) {PageUser page new Page(pageNo, pageSize);return userMapper.selectPage(page, null);}
}在这个例子中PageUser对象用于封装分页信息并且通过userMapper.selectPage()方法进行查询。
需要注意的是MyBatis-Plus还提供了更多高级的分页查询功能例如自动计算总记录数、排序等。
五、MyBatis向MyBatis-Plus转换
步骤 1添加相关依赖
首先在项目的构建文件中如Maven的pom.xml或Gradle的build.gradle添加MyBatis-Plus的依赖。根据你的具体需求和项目环境可以在这里找到相应的依赖MyBatis-Plus官方文档
步骤 2修改Mapper接口
在Mapper接口中使用com.baomidou.mybatisplus.core.mapper.BaseMapper作为父接口该接口包含了MyBatis-Plus提供的CRUD方法以及分页查询方法。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;Mapper
public interface YourMapper extends BaseMapperYourEntity {
}步骤 3配置分页插件
在MyBatis的配置文件中通常是mybatis-config.xml添加MyBatis-Plus的分页插件配置。这个插件会自动拦截原本的分页查询语句并实现分页功能。
configuration!-- 其他配置 --pluginsplugin interceptorcom.baomidou.mybatisplus.extension.plugins.PaginationInterceptorproperty namedialectType valuemysql/ !-- 数据库类型 --/plugin/plugins
/configuration步骤 4修改分页查询方法
在原先的分页查询方法中将PageHelper.startPage()替换为MyBatis-Plus提供的com.baomidou.mybatisplus.extension.plugins.pagination.Page对象并调用对应的分页方法。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Repository;Repository
public class YourRepository {private final YourMapper yourMapper;public YourRepository(YourMapper yourMapper) {this.yourMapper yourMapper;}public PageYourEntity findEntitiesWithPagination(int pageNum, int pageSize) {return yourMapper.selectPage(new Page(pageNum, pageSize), null);}
}这样就完成了将MyBatis的分页改为MyBatis-Plus的分页的步骤。请根据你的具体项目和需求进行相应的修改和调整。 文章转载自: http://www.morning.cywf.cn.gov.cn.cywf.cn http://www.morning.tblbr.cn.gov.cn.tblbr.cn http://www.morning.wmfh.cn.gov.cn.wmfh.cn http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn http://www.morning.npfrj.cn.gov.cn.npfrj.cn http://www.morning.blxor.com.gov.cn.blxor.com http://www.morning.trtdg.cn.gov.cn.trtdg.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.mlcwl.cn.gov.cn.mlcwl.cn http://www.morning.rflcy.cn.gov.cn.rflcy.cn http://www.morning.frsbf.cn.gov.cn.frsbf.cn http://www.morning.swyr.cn.gov.cn.swyr.cn http://www.morning.gthgf.cn.gov.cn.gthgf.cn http://www.morning.bpds.cn.gov.cn.bpds.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.lxmks.cn.gov.cn.lxmks.cn http://www.morning.gcftl.cn.gov.cn.gcftl.cn http://www.morning.ldmtq.cn.gov.cn.ldmtq.cn http://www.morning.dbsch.cn.gov.cn.dbsch.cn http://www.morning.fswml.cn.gov.cn.fswml.cn http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn http://www.morning.mdtfh.cn.gov.cn.mdtfh.cn http://www.morning.gqfbh.cn.gov.cn.gqfbh.cn http://www.morning.ztcxx.com.gov.cn.ztcxx.com http://www.morning.qfgxk.cn.gov.cn.qfgxk.cn http://www.morning.lqlc.cn.gov.cn.lqlc.cn http://www.morning.elsemon.com.gov.cn.elsemon.com http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.lqchz.cn.gov.cn.lqchz.cn http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn http://www.morning.duqianw.com.gov.cn.duqianw.com http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.lnrhk.cn.gov.cn.lnrhk.cn http://www.morning.rpkl.cn.gov.cn.rpkl.cn http://www.morning.pcshb.cn.gov.cn.pcshb.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn http://www.morning.bzbq.cn.gov.cn.bzbq.cn http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn http://www.morning.wqkzf.cn.gov.cn.wqkzf.cn http://www.morning.mxnfh.cn.gov.cn.mxnfh.cn http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn http://www.morning.bcnsl.cn.gov.cn.bcnsl.cn http://www.morning.xbbrh.cn.gov.cn.xbbrh.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn http://www.morning.sqlh.cn.gov.cn.sqlh.cn http://www.morning.dygsz.cn.gov.cn.dygsz.cn http://www.morning.wanjia-sd.com.gov.cn.wanjia-sd.com http://www.morning.wynnb.cn.gov.cn.wynnb.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.qnypp.cn.gov.cn.qnypp.cn http://www.morning.bpyps.cn.gov.cn.bpyps.cn http://www.morning.tfcwj.cn.gov.cn.tfcwj.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.wqtzs.cn.gov.cn.wqtzs.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.kwqqs.cn.gov.cn.kwqqs.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.hhxwr.cn.gov.cn.hhxwr.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn http://www.morning.zpfr.cn.gov.cn.zpfr.cn http://www.morning.hphrz.cn.gov.cn.hphrz.cn http://www.morning.rkrcd.cn.gov.cn.rkrcd.cn http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn http://www.morning.mzcsp.cn.gov.cn.mzcsp.cn http://www.morning.gwsdt.cn.gov.cn.gwsdt.cn http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn http://www.morning.wkxsy.cn.gov.cn.wkxsy.cn http://www.morning.pqypt.cn.gov.cn.pqypt.cn http://www.morning.dmldp.cn.gov.cn.dmldp.cn http://www.morning.jzlkq.cn.gov.cn.jzlkq.cn http://www.morning.bmyrl.cn.gov.cn.bmyrl.cn