java之mybatis之查询及分页
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之查询及分页的更多相关文章
- Java基础-SSM之mybatis的统计函数和分页查询
Java基础-SSM之mybatis的统计函数和分页查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Oracle使用MyBatis中RowBounds实现分页查询
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...
- SSM整合 mybatis多条件查询与分页
多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...
- Mybatis的插件 PageHelper 分页查询使用方法
参考:https://blog.csdn.net/ckc_666/article/details/79257028 Mybatis的一个插件,PageHelper,非常方便mybatis分页查询,国内 ...
- Java之mybatis详解
文章大纲 一.mybatis介绍二.mybatis代码实战三.项目源码下载四.参考文章 一.mybatis介绍 1. mybatis是什么? mybatis是一个持久层的框架,是apache下 ...
- MyBatis Generator实现MySQL分页插件
MyBatis Generator是一个非常方便的代码生成工具,它能够根据表结构生成CRUD代码,可以满足大部分需求.但是唯一让人不爽的是,生成的代码中的数据库查询没有分页功能.本文介绍如何让MyBa ...
- java:easyui(jQueryEasyUI,分页)
1.介绍: jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的ja ...
- 九:SpringBoot-整合Mybatis框架,集成分页助手插件
九:SpringBoot-整合Mybatis框架,集成分页助手插件 1.Mybatis框架 1.1 mybatis特点 1.2 适用场景 2.SpringBoot整合MyBatis 2.1 核心依赖 ...
- myBatis批量查询操作,xml中使用foreach案例
使用场景:有一个订单表,实体类为OrderBase.java,订单有个状态为status值可能为"1,2,3,4,5,6",现在需要查询状态为"2,3,4"的订 ...
随机推荐
- cannot connect to daemon at tcp:5037: cannot connect to 127.0.0.1:5037: 由于目标计算机积极拒绝,无法连接。 (10061)
原因是:5037端口被占用 解决方法:1.查找5037被谁占用 netstat -ano | findstr "3037" 2.查看对应的是哪个任务 tasklist | f ...
- paddlepaddle如何预加载embedding向量
使用小批量数据时,模型容易过拟合,所以需要对全量数据进行处理,我是用的是word2vec训练的词向量. 那么训练好对词向量如何加载呢? #!/usr/bin/env python # -*- codi ...
- 【推荐】安卓模板项目AndroidProject
[推荐]安卓模板项目AndroidProject https://github.com/getActivity/AndroidProject 安卓架构 博客地址:但愿人长久,搬砖不再有 当我们日复一日 ...
- EChart 标题 title 样式,x轴、y轴坐标显示,调整图表位置等
示例里工作一般情况是够用了,更复杂的可以查询教程: title 官方解说:http://echarts.baidu.com/option.html#title 坐标相关: X轴:http://echa ...
- openssl制作证书全过程 + 部分修改
一:生成CA证书 目前不使用第三方权威机构的CA来认证,自己充当CA的角色. 先决条件:从openssl官网下载www.openssl.org 安装open ...
- 几个简单易用的IDEA快捷键
常见的几个Idea的代码快捷键 格式化代码: Ctrl + Alt + L Optimize Imports(优化包引用): Ctrl-Alt-O 单行注释(//): Ctrl-/ 块注释(/*... ...
- Tensorflow不能使用GPU的解决办法
转载:https://blog.csdn.net/kudou1994/article/details/86735451 服务器在训练模型,另一边我在瞎胡乱搞不晓得咋个搞的,就不能使用GPU了.pyth ...
- npm link用法总结
npm link用来在本地项目和本地npm模块之间建立连接,可以在本地进行模块测试 具体用法: 1. 项目和模块在同一个目录下,可以使用相对路径 npm link ../module 2. 项目和模块 ...
- 多用户同时操作一条Mysql记录问题
场景:两个用户同时读取了数据库中的一条记录,此时用户A对其中一个字段的值进行了修改操作并进行了提交,后来用户B也对这个字段进行了修改,用户B的提交将会覆盖用户A提交的值 关于乐观锁和悲观锁 悲观锁:每 ...
- java修改文件所有者及其权限
1.设置所有者 管理文件所有者 Files.getOwner()和Files.setOwner()方法 要使用UserPrincipal来管理文件的所有者 (1)更改文件的所有者 import jav ...