1.mybatis中查询方式有3种

//查询单个值
@Test
public void testFindOne()throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
User user = (User)session.selectOne("cn.sxt.vo.UserMapper.findOne", 1);
System.out.println(user);
session.close();
}
//查询list
@Test
public void testFindAll() throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
List<User> list = session.selectList("cn.sxt.vo.UserMapper.findAll");
for(User u:list){
System.out.println(u);
}
session.close();
}
//查询map
@Test
public void testFindMap()throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
//selectMap 传递的参是 map集合的key值。
Map map=session.selectMap("cn.sxt.vo.UserMapper.findMap", "name");
for(Iterator iter=map.keySet().iterator();iter.hasNext();){
Object key=iter.next();
System.out.println(key+"---"+map.get(key));
}
session.close();
}

映射文件

<?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="cn.sxt.vo.UserMapper">
<!-- 查询单个对象 -->
<select id="findOne" resultType="User">
select * from t_user where id=#{id}
</select>
<!-- 查询list -->
<select id="findAll" resultType="User">
select * from t_user
</select>
<!-- 查询map -->
<select id="findMap" resultType="Map">
select * from t_user where id=1
</select>
<!--
begin=(currentPage-1)*pageSize
size=pageSize
-->
<select id="page1" resultType="User">
select * from t_user limit #{begin},#{size}
</select>
<select id="pageRow" resultType="User">
select * from t_user
</select>
</mapper>

2.分页

mybatis中有3种方式实现分页

映射文件

    <select id="page1" resultType="User">
select * from t_user limit #{begin},#{size}
</select>
<select id="pageRow" resultType="User">
select * from t_user
</select>

代码

//通过sql语句进行分页,参数传入的是对象
@Test
public void testPage() throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
PageInfo pi = new PageInfo();
pi.setBegin(3);
pi.setSize(3);
List<User> list = session.selectList("cn.sxt.vo.UserMapper.page1",pi);
for(User u:list){
System.out.println(u);
}
}
//通过sql语句进行分页,参数传入的是map
@Test
public void testPage1() throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
Map map = new HashMap();
map.put("begin", 0);
map.put("size", 3);
List<User> list = session.selectList("cn.sxt.vo.UserMapper.page1",map);
for(User u:list){
System.out.println(u);
}
}
//通过RowBounds来实现分页
@Test
public void testPage2() throws IOException{
SqlSession session = MybatisUtil.getSqlSession();
//第一个 参数 相当于index,第二个参数 每页显示记录数
RowBounds bounds = new RowBounds(3, 3);
List<User> list = session.selectList("cn.sxt.vo.UserMapper.pageRow",null,bounds);
for(User u:list){
System.out.println(u);
}
}

java之mybatis之查询及分页的更多相关文章

  1. Java基础-SSM之mybatis的统计函数和分页查询

    Java基础-SSM之mybatis的统计函数和分页查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  2. Oracle使用MyBatis中RowBounds实现分页查询

    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...

  3. SSM整合 mybatis多条件查询与分页

    多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...

  4. Mybatis的插件 PageHelper 分页查询使用方法

    参考:https://blog.csdn.net/ckc_666/article/details/79257028 Mybatis的一个插件,PageHelper,非常方便mybatis分页查询,国内 ...

  5. Java之mybatis详解

    文章大纲 一.mybatis介绍二.mybatis代码实战三.项目源码下载四.参考文章   一.mybatis介绍 1. mybatis是什么?   mybatis是一个持久层的框架,是apache下 ...

  6. MyBatis Generator实现MySQL分页插件

    MyBatis Generator是一个非常方便的代码生成工具,它能够根据表结构生成CRUD代码,可以满足大部分需求.但是唯一让人不爽的是,生成的代码中的数据库查询没有分页功能.本文介绍如何让MyBa ...

  7. java:easyui(jQueryEasyUI,分页)

    1.介绍: jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的ja ...

  8. 九:SpringBoot-整合Mybatis框架,集成分页助手插件

    九:SpringBoot-整合Mybatis框架,集成分页助手插件 1.Mybatis框架 1.1 mybatis特点 1.2 适用场景 2.SpringBoot整合MyBatis 2.1 核心依赖 ...

  9. myBatis批量查询操作,xml中使用foreach案例

    使用场景:有一个订单表,实体类为OrderBase.java,订单有个状态为status值可能为"1,2,3,4,5,6",现在需要查询状态为"2,3,4"的订 ...

随机推荐

  1. [原创]浅谈对任务分解法WBS应用

    [原创]浅谈对任务分解法WBS应用 1.WBS是什么? 即Work Breakdown Structure如何进行WBS分解:目标→任务→工作→活动 2.WBS分解的原则:将主体目标逐步细化分解,最底 ...

  2. fastjson WriteClassName,Double类型不打3.3D

    方式一: public class SerializeConfigX extends SerializeConfig { public SerializeConfigX() { put(Double. ...

  3. TensorFlow2.0初体验

    TF2.0默认为动态图,即eager模式.意味着TF能像Pytorch一样不用在session中才能输出中间参数值了,那么动态图和静态图毕竟是有区别的,tf2.0也会有写法上的变化.不过值得吐槽的是, ...

  4. JetBrains套装免费学生授权申请(IntelliJ, ReSharper, WebStorm...)

    IntelliJ作为一款强大的Java开发IDE,售价自然也不会低.但是对于学生或教师来说,JetBrains开发工具免费提供给学生和教师使用.而且取得一次授权后只需要使用相同的 JetBrains ...

  5. docker 镜像制作

    # wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh# bash A ...

  6. mysql/mongodb监控之Percona Monitoring and Management (PMM) 2.1.0安装使用

    Percona Monitoring and Management (PMM)是Percona Server一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的D ...

  7. jdk8 stream实现sql单表select a,b,sum(),avg(),max() from group by a,b order by a,b limit M offset N及其性能

    之所以要测该场景,是因为merge多数据源结果的时候,有时候只是单个子查询结果了,而此时采用sql数据库处理并不一定能够合理(网络延迟太大). 测试数据10万行,结果1000行 limit 20 of ...

  8. VS找不到头文件但是系统路径已经设置

    有时候会出现打不开Include文件的问题,但是在系统包含include路径中已经设置,编译也没问题,就是一直有错误提示 这时候可以尝试在项目上点击右键,选择“下载项目”,然后再选择加载 如果还是不行 ...

  9. Maven 常用工具类整理

    目录 1.Apache Commons 1.1.字符串处理 1.2.集合操作 1.3.IO操作 1.4.编解码操作 2.Google Guava 2.1.多场景使用 2.2.guava-retryin ...

  10. java 欢迎页 主页 设置为servlet的方法

    [参考]Java Web 设置默认首页 [参考]设置servlet或action作为欢迎页面 1. 使用HTML<meta>标签跳转至servlet  <META HTTP-EQUI ...