Mybatis查询
查询
查询的数据为单条实体类
使用实体类进行接受即可,或者使用list,map接口均可.后面两者比较浪费
- 使用实体类接受
mapper接口:
User selectUserById(int userid);
映射文件:使用实体类
<!--第二个一致,对应方法名 User selectUserById(int userid); -->
<select id="selectUserById" resultType="user">
select * from user where userid=#{userid}
</select>
- 使用Map接收
mapper接口:
Map<String ,Object> selectUserById2(@Param("userid")int userid);
映射文件:
<!-- Map<String ,Object> selectUserById();-->
<select id="selectUserById2" resultType="map">
select * from user where userid=#{userid}
</select>
调用:以获取UserMapper接口的对象userMapper
Map<String ,Object> map=userMapper.selectUserById2(1);
System.out.println(map.toString());
查询多条数据时
使用list集合接受,或者用list包裹map查询,或者使用map集合+Mapkey("")注解
- 使用List集合
mapper接口:
List<User> selectAllUser();
映射文件:
<!-- List<User> selectAllUser();-->
<select id="selectAllUser" resultType="User">
select * from user;
</select>
调用:
//已经获取sqlSession的情况下,创建完Usermapper对象
List<User> list= userMapper.selectAllUser();
for (User user:list) {
System.out.println(user);
}
- 使用map+Mapkey(""),此时将注解中的属性作为map的key,其余属性作为值
mapper接口:
@MapKey("userid")//使用userid作为键,其余属性为值
Map<String,Object> selectAllUser2();
映射文件:
<!-- Map<String,Object> selectAllUser2();-->
<select id="selectAllUser2" resultType="map">
select * from user;
</select>
调用:
Map<String ,Object> map2=userMapper.selectAllUser2();
System.out.println(map2.toString());
查询单个数量
mapper接口:
int selectCount();
映射文件:
<!-- int selectCount();-->
<select id="selectCount" resultType="int">
select count(*) from user;
</select>
对于基本属性,均提供了其默认的别名可以直接在result Type中使用
模糊查询
mapper接口:这里使用username进行模糊查询
List<User> selectUserByLikeName( @Param("username") String username);
映射文件:这里可以使用三种方式,第一种是使用${},因为#{}无法在单引号中使用,要么使用concat()进行拼接+#{},或者使用双引号的方式括住%,常用第三种
<!-- List<User> selectUserByLikeName( @Param("username") String username);-->
<select id="selectUserByLikeName" resultType="User">
<!-- select * from user where username like '%${username}%' -->
<!-- select * from user where username like concat('%',#{username},'%') -->
select * from user where username like "%"#{username}"%"
</select>
Mybatis查询的更多相关文章
- mybatis 查询 xml list参数
mybatis 查询 xml list参数: <select id="getByIds" resultType="string" parameterTyp ...
- MyBatis 查询映射自定义枚举
背景 MyBatis查询若想映射枚举类型,则需要从 EnumTypeHandler 或者 EnumOrdinalTypeHandler 中选一个来使用 ...
- mybatis查询异常-Error querying database. Cause: java.lang.ClassCastException: org.apache.ibatis.executor.ExecutionPlaceholder cannot be cast to java.util.List
背景,mybatis查询的时候直接取的sqlsession,没有包装成SqlSessionTemplate,没有走spring提供的代理. 然后我写的获取sqlsession的代码没有考虑到并发的情况 ...
- mybatis查询语句的背后
转载请注明出处... 一.前言 在先了解mybatis查询之前,先大致了解下以下代码的为查询做了哪些铺垫,在这里我们要事先了解,myabtis会默认使用DefaultSqlSessionFactory ...
- mybatis查询语句的背后之参数解析
转载请注明出处... 一.前言 通过前面我们也知道,通过getMapper方式来进行查询,最后会通过mapperMehod类,对接口中传来的参数也会在这个类里面进行一个解析,随后就传到对应位置,与sq ...
- mybatis查询语句的背后之封装数据
转载请注明出处... 一.前言 继上一篇mybatis查询语句的背后,这一篇主要围绕着mybatis查询的后期操作,即跟数据库交互的时候.由于本人也是一边学习源码一边记录,内容难免有错误或不足之处,还 ...
- mybatis查询结果和接收的不一样
记一次大坑:mybatis查询结果和接收的不一样,折腾我好几个小时. 先上代码:代码是要查询排名,sql执行的结果 SELECT b.operator_id, b.class_count, b.cla ...
- 【mybatis】【mysql】mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
mybatis查询mysql,group by分组查询报错:Expression #1 of SELECT list is not in GROUP BY clause and contains no ...
- 使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,会报异常. 例如: <select id="getPersonRecordId" parameterTy ...
- mybatis查询日期时间数据得到long类型数据的问题
使用mybatis查询数据时,如果数据库存储的是timestamp.datetime.date.time等时间类型,而Java bean也使用的是date类型,mybatis会自动将date类型转换为 ...
随机推荐
- Spring--案例:百度网盘密码数据兼容处理
案例再度来袭 也就是说,在百度网盘的密码复制时,后面即使有空格也能提取成功(trim方法) 案例的实现: 也就是实现存在空格时,也能输出true: 现在的话: 那么,我们应该如何使得它忽略空格呢? 这 ...
- 63.C++类型转换
类型转换(cast)是将一种数据类型转换成另一种数据类型.例如,如果将一个整型值赋给一个浮点类型的变量,编译器会暗地里将其转换成浮点类型. 转换是非常有用的,但是它也会带来一些问题,比如在转换 ...
- Firefox、Edge下无法使用jQuery的css("margin")、css("padding”)和css("border")获取值
今天遇到了浏览器的迷惑行为,在Edge上使用jQuery的css("margin")获取值,发现获取的是空值,换了Firefox也是如此.看了jquery官方原话,发现如下一段话R ...
- 常用ADB命令使用方法
移动端操作流程 在设置中找到关于手机(或关于平板电脑) 连续点击版本号5次 在系统和更新中点击开发者选项 打开USB调试功能 PC端操作流程 打开cmd或powershell 移动到adb.exe所在 ...
- Windows7系统显存只有4GB
Windows7安装后,专用视屏内存只有4GB可用,是不是Windows7不支持4G以上显存的显卡呢?之前在网上有人说,虽然系统显示可用只有4G显存,但是游戏内实际可以超过4G.本人没有特地去试验过. ...
- Host key verification failed的问题解决 (亲测有效)
一.描述 scp拷贝远程内容时失败,出现以下问题: 翻译: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...
- 【Jenkins系列】-Pipeline语法全集
Jenkins为您提供了两种开发管道代码的方式:脚本式和声明式. 脚本式流水线(也称为"传统"流水线)基于Groovy作为其特定于域的语言. 而声明式流水线提供了简化且更友好的语法 ...
- kubernetes 设置 Master 可调度与不可调度
kubernetes 设置 Master 可调度与不可调度 语法 kubectl taint node [node] key=value[effect] [effect] 可取值: [ NoSched ...
- GitHub+Hexo 搭建博客网站
Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Heroku上,是搭建博客的首选框架. 配置Github root@hello:~/cby ...
- 系统建模之UML状态图[转载]
1 状态图的简介(Instrduction) 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event) ...