Mybatis(Map)
Map
假设,我们的实体类,或者数据库中的表,字段或参数过多,我们应当考虑使用map
创建接口
//万能的mapper,我们不需要知道数据库里面有什么,是一个键值对的表现
//我们只需查询对应的字段
int addUser2(Map<String,Object> map);
写xml文档
<insert id="addUser2" parameterType="map">
insert into mybatis.user(id,name,pwd)values (#{userid},#{userName},#{password})
</insert>
测试
public void addUser2(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map= new HashMap<String, Object>();
map.put("userid",5);
map.put("userName",5);
map.put("password",123456);
mapper.addUser2(map);
sqlSession.close();
}
总结:
使用场景:类中的属性较多时;但你要修改其中的一个或少数几个时候用map,new对象要给每一个参数赋值,比较麻烦。
Map传递参数,直接在sql中取出key即可!【parameterType ="map"】
对象传递参数,直接在sql中取对象的属性即可。【parameterType="Object"】
只有一个基本类型参数的情况下,可以直接在sql中取到。
多个参数用Map,或者注解!
思考题:
模糊查询
编写接口
List<User> getUserLike(String name);
写xml文件标签属性
<select id="getUserLike" resultType="com.my.pojo.User">
select *from mybatis.user where name like #{value}
</select>
测试
public void getUserLike() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUserLike("%李%");
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
注意
1.java代码执行的时候,传递通配符% %
select *from mybatis.user where name like #{value}
List<User> userList = mapper.getUserLike("%李%");
2.#{}底层就是Preparestatement,先编译sql语句在取值
如果使用${}片段注入,才会存在sql注入,就是取值以后再去编译语句
select *from mybatis.user where name like "%"#{value}"%"
List<User> userList = mapper.getUserLike("李");
Mybatis(Map)的更多相关文章
- Java框架之Mybatis(二)
本文主要介绍 Mybatis(一)之后剩下的内容: 1 mybatis 中 log4j的配置 2 dao层的开发(使用mapper代理的方式) 3 mybatis的配置详解 4 输入输出映射对应的类型 ...
- Mybatis(下)
Mybatis(下) 一.MaBatis核心配置文件 Mybatis 中文文档 Mybatis 中文文档 1. properties 定义属性及读取属性文件,取的时候用 $(name) ,name 为 ...
- 浅析MyBatis(二):手写一个自己的MyBatis简单框架
在上一篇文章中,我们由一个快速案例剖析了 MyBatis 的整体架构与整体运行流程,在本篇文章中笔者会根据 MyBatis 的运行流程手写一个自定义 MyBatis 简单框架,在实践中加深对 MyBa ...
- 浅析MyBatis(三):聊一聊MyBatis的实用插件与自定义插件
在前面的文章中,笔者详细介绍了 MyBatis 框架的底层框架与运行流程,并且在理解运行流程的基础上手写了一个自己的 MyBatis 框架.看完前两篇文章后,相信读者对 MyBatis 的偏底层原理和 ...
- GO语言总结(4)——映射(Map)
上一篇博客介绍了Go语言的数组和切片——GO语言总结(3)——数组和切片,本篇博客介绍Go语言的映射(Map) 映射是一种内置的数据结构,用来保存键值对的无序集合. (1)映射的创建 make ( m ...
- Java-集合=第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得该Account 对象能够自动分配id。 给定一个List 如下: List list = new ArrayList(); list.add(new A
第五题 (Map)设计Account 对象如下: private long id; private double balance; private String password; 要求完善设计,使得 ...
- Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录
第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...
- mybatis(二)接口编程 、动态sql 、批量删除 、动态更新、连表查询
原理等不在赘述,这里主要通过代码展现. 在mybatis(一)基础上,新建一个dao包,并在里面编写接口,然后再在xml文件中引入接口路径,其他不变,在运用阶段将比原始方法更节约时间,因为不用再去手动 ...
- 第一题 (Map)利用Map,完成下面的功能:
从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年份,请参考本章附录. 附录 1.历届世界杯冠 ...
- springboot集成mybatis(二)
上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...
随机推荐
- DFS手写排列
DFS手写排列 虽然python中有自带的排列函数,但是在某些特殊情况需要手写排列.掌握了DFS手写排列对DFS的理解有一定的帮助. 1.手写排列(非字典序输出) 这种代码比较简单易懂,但是不是按照字 ...
- Spring中事务嵌套这么用一定得注意了!!
前言 最近项目上有一个使用事务相对复杂的业务场景报错了.在绝大多数情况下,都是风平浪静,没有问题.其实内在暗流涌动,在有些异常情况下就会报错,这种偶然性的问题很有可能就会在暴露到生产上造成事故,那究竟 ...
- 笔记五:进程间的通信(IPC通信之共享内存)
IPC通信 IPC通信(Inter-Process Communication) 三种: 共享内存.消息队列.信号灯 这个IPC对象,肯定是存在于内核中.而且用户空间的文件系统中有没有IPC的文件类型 ...
- CSS3实现了左右固定中间自适应的几种方法
1,弹性盒(flex)布局 中间 .center 区域设置 flex-grow: 1 或者 width: 100% .container { width: 100%; min-height: 2 ...
- Python 函数返回值及传递列表
函数返回值 函数并非总是直接显示输出,它可以处理一些数据,并返回一个或一组值,函数返回的值被称为返回值. 使用return语句将值返回到调用函数的代码行中 # 返回简单值 def get_format ...
- [OpenCV-Python] 17 形态学转换
文章目录 OpenCV-Python:IV OpenCV中的图像处理 17 形态学转换 17.1 腐蚀 17.2 膨胀 17.3 开运算 17.4 闭运算 17.5 形态学梯度 17.6 礼帽 17. ...
- 痞子衡嵌入式:聊聊i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式. 如果你在 i.MXRT1xxx 板卡上尝试过从 SD ...
- 在Winform分页控件中集成保存用户列表显示字段及宽度调整设置
在Winform的分页控件里面,我们提供了很多丰富的功能,如常规分页,中文转义.导出Excel.导出PDF等,基于DevExpress的样式的分页控件,我们在其上面做了不少封装,以便更好的使用,其中就 ...
- SRIO接口卡航电总线解决方案
TES600是天津拓航科技的一款基于FPGA与DSP协同处理架构的通用高性能实时信号处理平台,该平台采用1片TI的KeyStone系列多核浮点/定点DSP TMS320C6678作为主处理单元,采用1 ...
- 当Serverless遇到Regionless:现状与挑战
摘要:本文尝试基于分析现有的学术文章,剖析Serverless与Regionless并存时,在性能提升和成本控制两个方向的现状与挑战 本文分享自华为云社区<当Serverless遇到Region ...