昨天下班之前想到了分页的,在网上找了下,说mybatis的分页是查询了全部后在进行的分页,如果数据量很大的话就不建议使用内部的分页,并且还有人写了插件,也没去仔细的看,这里是地址,有心人可以去研究下http://www.cnblogs.com/jcli/archive/2011/08/09/2132222.html 这里我仅是使用mybatis内部的分页和修改操作,代码也是基于昨天上传的那个简单demo
步骤依旧是昨天那样,只是在接口添加了分页查询的方法和在对应的文件写上sql语句,具体如下:
这是接口新增的方法:
package test.batics.service;
import java.util.List;
import org.apache.ibatis.session.RowBounds;
import test.batics.entity.User;
public interface UserMapper {
//通过id查询
User findById(Long id);
//查询全部
List<User> findAll();
//分页查询
List<User> findPage(RowBounds bounds);
//修改操作
int updateById(User user);
}
这是映射文件的增加的语句,注意id和接口方法名对应,其中有通过if判断是否为空来动态生成的sql,mybatis也很多内部标签来构建动态sql语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="test.batics.service.UserMapper">
<select id="findById" parameterType="java.lang.Long" resultType="User">
select * from t_user where id = #{value}
</select>
<select id="findAll" resultType="User">
select * from t_user
</select>
<select id= "findPage" resultType="User">
select * from t_user
</select>
<update id="updateById" parameterType="User">
update t_user
<set>
<if test="email != null and email !=''">
email = #{email,jdbcType=VARCHAR}
</if>
<if test="name !=null and name != ''">
name = #{name,jdbcType=VARCHAR}
</if>
</set>
where id = #{id}
</update>
</mapper>
mybatis用于分页的主要是RowBounds这个类,其中通过构造函数来构造一个从offset开始查询limit个数据的对象,RowBounds(int offset, int limit)
可以通过session的session.selectList(String arg0, Object arg1, RowBounds arg2)来得到,其中第一个参数是mapper中的namespace+"."+"方法ID",也可以理解为namespace+"."+"接口名",第二个参数是要穿进去的参数 可以理解为mapper中的param或者是接口中的参数,最后一个就是RowBounds了!
然后也可以通过在接口方法中添加一个RowBounds参数,都是一样的,上面均有提供
网速慢的很,就不提供全部运行结果了,修改结果如下:
代码也上传了,都是些简单的应用,网速慢,jar包就没上传,在第一篇demo1中有连接,需要的自己去下载就OK了
- 大小: 14.2 KB
- 大小: 41.1 KB
- 大小: 12.5 KB
分享到:
相关推荐
06实现mybatis分页插件demo06实现mybatis分页插件demo06实现mybatis分页插件demo06实现mybatis分页插件demo06实现mybatis分页插件demo06实现mybatis分页插件demo06实现mybatis分页插件demo06实现mybatis分页插件demo...
通过学习和分析这个demo,开发者可以深入理解Spring、SpringMVC和MyBatis的整合方式,以及如何利用Mybatis-Paginator实现高效便捷的分页功能。这对于提升Java Web开发技能和理解企业级应用架构具有重要意义。
mybatis中,sqlserver分页
在分页场景下,你需要使用MyBatis的动态SQL来构造分页查询,例如使用`<if>`、`<choose>`等标签条件性地添加LIMIT和OFFSET子句。同时,通过PageHelper插件可以方便地实现分页功能,它自动处理分页参数,简化了代码。 ...
【MyBatis PageHelper分页插件Demo详解】 在Java Web开发中,数据查询往往涉及到大量的数据量,这时分页查询就显得尤为重要。MyBatis PageHelper插件是一款专为MyBatis设计的高效分页插件,它可以无缝对接Spring ...
在本项目中,我们结合了Spring Boot、Mybatis-Plus、Thymeleaf以及Bootstrap来实现一个具有分页查询功能的Web应用。首先,让我们详细探讨每个技术在项目中的作用和实现方式。 **Spring Boot** Spring Boot是Spring...
通过MyBatisDemo,初学者可以逐步了解并熟悉MyBatis的基本概念和使用方式,为进一步深入学习和应用MyBatis打下坚实基础。同时,这也是一个很好的实践项目,可以帮助开发者理解数据库操作与Java代码之间的交互,提升...
在提供的`pagination-demo`压缩包中,可能包含了一个完整的MyBatis分页示例,包括了XML映射文件、Java代码以及如何在前端展示分页导航的示例。通过研究这个示例,可以更直观地理解和掌握MyBatis的分页技巧。
MyBatis 是一款深受开发者喜爱的持久层框架...通过这个"Mybatis demo",学习者可以全面地理解MyBatis的架构、配置、SQL映射、对象关系映射,以及事务和缓存等核心特性,为实际开发中高效地使用MyBatis打下坚实的基础。
在本项目"springboot集成mybatis的demo"中,我们将探讨如何将流行的Java框架Spring Boot与数据持久化库...这个项目"spring-boot-samples-master"可以作为学习和实践的模板,帮助你快速上手Spring Boot和MyBatis的整合。
在IT行业中,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们在企业级Web应用开发中被广泛使用。Spring作为一个全面的后端应用程序框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能,极大地简化了...
通过继承 `BaseMapper` 接口,我们可以轻松实现对数据库表的基本操作,如插入、查询、修改和删除记录。 其次,MyBatis-Plus 内置了丰富的条件构造器,使得动态 SQL 编写变得简单。例如,我们可以使用 `...
MyBatis-Plus 是 MyBatis 的一个扩展,它提供了许多增强功能,使得...在提供的 `mybatis-plus-demo-main` 压缩包中,应该包含了这些文件的示例代码,你可以参考这些代码来学习和理解 MyBatis-Plus 分页查询的具体实现。
spring boot 集成mybatis,使用pagehelper分页,demo 对应博客地址:http://blog.csdn.net/woniu211111/article/details/54562307
"MYBATIS学习资料文件"这一标题明确指出,这是一份与MyBatis相关的学习资源集合,可能包含教程、示例代码、笔记等,旨在帮助用户理解和掌握MyBatis这一流行的数据持久层框架。 【描述解读】 描述中提到“mybatis所...
mybatis 3.1.1, spring-3.1.3 与 mybatis-spring -1.1.1 集成的 分页程序,以及spring MVC 例子. 没分了,收取一分,如果有和我一样穷的兄弟,你可以到我的博客上去下载,不需要积分:...
在SSM(Spring、SpringMVC、MyBatis)框架中,全注解开发模式能够大大提高开发效率,但在处理复杂的SQL查询,特别是涉及到分页查询时,MyBatis的注解方式可能会显得力不从心。`demo.zip`中的内容可能是解决这个问题...
这个"MyBatisDemo2.zip"压缩文件看起来是用于演示或学习MyBatis框架的一个示例项目。在没有提供具体的jar包的情况下,可能需要开发者自行配置所需的依赖库,例如MyBatis的核心库、Spring框架(如果整合使用)以及...
"springboot+mybatis+easyui增删改查分页Demo"是一个基于Spring Boot、MyBatis和EasyUI实现的Web应用程序示例,主要用于演示如何在这些技术栈中进行基本的数据操作,如添加(Add)、删除(Delete)、修改(Update)...