10mybatis分页技术

摘要:
selectresultType=“学生”>测试代码SqlSessions=MyBatisUtil。getSqlSession();selectresultType=“student”parameterType=“Map”>=null“>#{size}<}<mappernamespace=“com.fz.mapper.BookMapper”>

maven 手动安装jar包方法
mvn.cmd 在哪里 e:mavenin 目录下

mvn install:install-file
-DgroupId=com.oracle
-DartifactId=ojdbc14
-Dversion=10.2.0.2.0
-Dpackaging=jar
-Dfile=E:oracleojdbc14-10.2.0.2.0.jar

将oracle 的驱动jar 复制到 e:mavenin 目录下,
命令控制台下进入e:/maven/bin 目录输入如下命令
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.1.0.7.0 -Dpackaging=jar -Dfile=ojdbc6.jar

1、逻辑分页
StudentMapper.java
public List<Student> queryAll(RowBounds r);

StudentMapper.xml
<select resultType="student">
select * from db_student
</select>

测试代码
SqlSession s = MyBatisUtil.getSqlSession();
StudentMapper sm = s.getMapper(StudentMapper.class);
//RowBounds r = new RowBounds(0,2);1页
//RowBounds r = new RowBounds(2,2);2页
//RowBounds r = new RowBounds(4,2);3页

List<Student> sts = sm.queryAll(r);
for(Student st :sts){
System.out.println(st.getName());
}


2、物理分页显示
public List<Student> pp(Map m);

<select resultType="student" parameterType="Map">
select * from db_student
<if test="start!=null and size!=null">
limit #{start},#{size}
</if>
</select>

StudentMapper sm = s.getMapper(StudentMapper.class);
Map<String,Object> m = new HashMap<String,Object>();
m.put("start",2);
m.put("size",2);
List<Student> sts = sm.pp(m);
for(Student st :sts){
System.out.println(st.getName());
}


<?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="com.fz.mapper.BookMapper">
<resultMap type="book">
<id column="book_id" property="id"/>
<result column="book_name" property="name"/>
<result column="book_price" property="price"/>
</resultMap>

<select resultMap="mp">
select * from book
</select>
</mapper>

db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db?useSSL=true&useUnicode=true&characterEncoding=UTF8
jdbc.username=root
jdbc.password=root

o.properties
jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:ORCL
jdbc.username=system
jdbc.password=orcl


@Select("select * from book limit #{ss},#{ee}") @ResultMap("mp")
public List<Book> mpage(@Param("ss") int ss,@Param("ee") int ee);


@Select("select book_id,book_name,book_price from (select rownum rn, b.* from book b) bb where rn between #{ss} and #{ee}") @ResultMap("mp")
public List<Book> opage(@Param("ss") int ss,@Param("ee") int ee);


测试代码:
package com;

import com.fz.entity.Book;
import com.fz.mapper.BookMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.util.List;


/**
* Created by webrx on 2017-06-16.
*/
public class Demo {
protected SqlSessionFactory sf;
protected SqlSession ss;
protected BookMapper bdao;
@Before
public void init(){
try {
this.sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
this.ss = this.sf.openSession();
this.bdao = this.ss.getMapper(BookMapper.class);
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void close(){
this.ss.commit();
this.ss.close();
}

@Test
public void add(){
bdao.insert("《java入门与精通》",38);
bdao.insert("《MySQL入门与精通》",238);
bdao.insert("《Html5入门与精通》",138);
bdao.insert("《css入门与精通》",38);
bdao.insert("《综合项目》",338);
}

@Test
public void sss(){
bdao.save("《java入门与精通》",38);
bdao.save("《MySQL入门与精通》",238);
bdao.save("《Html5入门与精通》",138);
bdao.save("《css入门与精通》",38);
bdao.save("《综合项目》",338);
}


@Test
public void mpage(){
List<Book> bks = bdao.mpage(0,2);
bks = bdao.mpage(2,2);
for(Book b : bks){
System.out.println(b.getName());
}
}

@Test
public void opage(){
int currpage = 2;
int pagesize = 2;
List<Book> bks = bdao.opage(currpage*pagesize-pagesize+1,currpage*pagesize);
for(Book b : bks){
System.out.println(b.getName());
}
}


@Test
public void show(){
RowBounds n = new RowBounds(0,2);
List<Book> bks = bdao.page(new RowBounds(2,2));
for(Book b : bks){
System.out.println(b.getName());
}
}
}

免责声明:文章转载自《10mybatis分页技术》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Asp.NetCore+Microsoft.AspNetCore.SignalR前后端分离WPF数据绑定(三)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Sql 动态行转列 pivot

最近朋友有个需求:将产品中为“期刊”的书品以行转列的形式展现,同时需要关联工单主表及工单明细表,显示内容为,工单号、操作日期、产品名称及数量,由于期刊的产品数量较多,静态的虽然可以实现,但不利于后续内容的添加,就想着如何能以动态的形式展现,自动拼接sql语句处理,具体实现过程如下。  产品信息表需用到的字段内容: select ProductCode,Na...

STL之六:map/multimap用法详解

转载于:http://blog.csdn.net/longshengguoji/article/details/8547007 map/multimap     使用map/multimap之前要加入头文件#include<map>,map和multimap将key/value当作元素,进行管理。它们可根据key的排序准则自动将元素排序。mul...

Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

前两篇不错 Spring.profile实现开发、测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/7091021.html 详解Spring中的Profile - 简书https://www.jianshu.com/p/948c303b2253 spring-mvc-...

SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)

五、锁与事务隔离级别 事务隔离级别简单的说,就是当激活事务时,控制事务内因SQL语句产生的锁定需要保留多入,影响范围多大,以防止多人访问时,在事务内发生数据查询的错误。设置事务隔离级别将影响整条连接。 SQL Server 数据库引擎支持所有这些隔离级别: · 未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据) · 已提交读(数据库引擎的默认级...

在SqlServer中通过SQL语句实现树状查询

1 CREATE PROCEDURE [dbo].[GetTree] 2 @Id int 3 AS 4 BEGIN 5 with cte as 6 ( 7 select Id,Pid,Name,0 as lvl fromEntity 8 where Id = @Id 9 union all 10...

requirej入门nodeTpl使用(三)

基本语法 HTML部分 在模板中的 HTML 部分,使用定界符“<?”和“?>”作为语法的开始和结束。 在定界符内,可以书写任意JavaScript语句,如: 1 <?for(var i=0; i<10; i++){?> 2 <p>hello, world</p> 3 <?}?> 使用等...