sqlsession传参
1.传一位参数
<!-- 传参一位数 -->
<!--parameterType 外部传参一个整数 -->
<!--resultType 结果的类型 -->
<select id="findOneById" parameterType="integer" resultType="com.imooc.mybatis.entity.GoodsEntity">
SELECT * FROM t_goods WHERE goods_id = #{value}
</select>
public void testFindOne() throws Exception {
SqlSession sqlSession = null;
try {
//获取sql对象
sqlSession = MybatisUtils.openSession();
//执行sql
GoodsEntity good = sqlSession.selectOne("goods.findOneById",739);
System.out.println(good.getTilte());
//查看连接状态
Connection conn = MybatisUtils.getConnection(sqlSession);
}catch (Exception e){
throw e;
}finally {
MybatisUtils.release(sqlSession);
}
}
2.传多位参数
<!--传递多位参数 -->
<!--parameterType 传递多位参数-->
<select id="findMoreParam" parameterType="java.util.Map" resultType="com.imooc.mybatis.entity.GoodsEntity">
SELECT * FROM t_goods
WHERE current_price
BETWEEN #{min} AND #{max}
ORDER BY current_price DESC limit 0,#{limit}
</select>
public void testMoreParam() throws Exception {
SqlSession sqlSession = null;
try {
//获取sql对象
sqlSession = MybatisUtils.openSession();
//执行sql
Map para = new HashMap();
para.put("min",100);
para.put("max",200);
para.put("limit",5);
List<GoodsEntity> list = sqlSession.selectList("goods.findMoreParam",para);
for (GoodsEntity good:list
) {
System.out.println(good.getTilte()+"---"+good.getCurrentPrice());
}
//查看连接状态
Connection conn = MybatisUtils.getConnection(sqlSession);
}catch (Exception e){
throw e;
}finally {
MybatisUtils.release(sqlSession);
}
}
Mybatis中parameterType和parameterMap的区别
parameterMap和resultMap类似,parameterMap通常应用于mapper中有多个参数要传进来时,表示将查询结果集中列值的类型一一映射到java对象属性的类型上,在开发过程中不推荐这种方式。
一般使用parameterType直接将查询结果列值类型自动对应到java对象属性类型上,不再配置映射关系一一对应。
MyBatis报错笔记——Could not find parameter map java.util.List
解决办法就是将写错的parameterMap改为parameterType就ok了
sqlsession传参相关推荐
- MyBatis框架 传参、事务、缓存(二级)
传参 在mapper.xml文件中的标签中的parameterType可以可控制参数 传入参数的方法: sSession.select("虚拟包.id", 参数列表); SQL语句 ...
- MyBatis复习(四):#{}占位符与SQL传参
参数类型 1. MyBatis的parameterType参数类型可以是基本数据类型.String.包装类型.java.util.Map.java.util.LinkHashMapd等 ${}和#{} ...
- MyBatis获取参数值的两种方式以及传参情况
MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${}和#{} 传参情况 演示环境 1.单个字面量类型的参数 2.多个字面量类型的参数 3.map集合类型的参数 4.实体类类型 ...
- mybatis入门学习(九) -DB环境切换、使用注解、事务提交、获取自增ID、多参数传参、鉴别器、内置参数、批量写入、Oracle字段无法插入 null 值
一.多数据库环境切换 1.config配置: <!-- default="mydemo" 指定连接的数据库 --><environments default=&q ...
- 在Mybatis中使用万能的Map传参,实现增删改查
在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择. Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就 ...
- Go 学习笔记(25)— 并发(04)[有缓冲/无缓冲通道、WaitGroup 协程同步、select 多路监听通道、close 关闭通道、channel 传参或作为结构体成员]
1. 无缓冲的通道 无缓冲的通道(unbuffered channel)是指在接收前没有能力保存任何值的通道. 这种类型的通道要求发送 goroutine 和接收 goroutine 同时准备好,才能 ...
- MySQL 存储过程传参之in, out, inout 参数用法
存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名 参数类型 ..) in :给参数传入值,定义的参数就得到了值 ou ...
- shell脚本的命令行传参
在Linux环境下开发C程序,若想要可选择性的给程序传递外部参数,最后是以启动脚本的形式间接进行传递,这样对于命令行的参数解析工作将集中到shell脚本中,大大增加C代码的可移植性. sh ...
- Linux C程序命令行传参
在命令行环境下,执行已编译的程序时,将命令行参数以同一行的附加参数的形式传入到要执行的程序中.C编译器允许main()函数没有参数,或者有两个参数(也有可能更多,是对标准的扩展).一般形式为" ...
最新文章
- Rocksdb 的优秀代码(三)-- 工业级 线程池实现分享
- log4j 超完美配置文件!
- Winform中实现跨窗体获取ZedGraph的ZedGraphControl控件对象
- TensorFlow实现Unet遥感图像分割
- Sicily 1346. 金明的预算方案
- javascript 对象基础 继承机制实例【对象冒充】
- MySQL 性能监控 4 大指标
- R-CNN家族梳理:从R-CNN到Mask R-CNN
- 总结篇——mysql中使用sql语句操作表字段
- 【ENVI解决经验】一处理图像就报错
- redhat8.1网卡配置教程
- Sass 入门(基础知识点汇总)
- mac bootcamp 安装 win7
- Pixelmator for Mac(图像编辑器)
- ubuntu 安装视频下载器Annie
- java编程水仙花数_Java 编程找出所有的水仙花数(水仙花数)。
- Android入门教程 (一) Android简介和android studio安装
- ISeeYou:一款基于Bash和Javascript开发的社会工程学网络钓鱼工具
- 【C++项目】2048益智小游戏
- 华为麦芒7上的360手机助手无法卸载