博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之mybatis之占位符
阅读量:5038 次
发布时间:2019-06-12

本文共 1045 字,大约阅读时间需要 3 分钟。

1.mybatis中有两种占位符 #{}和 ${}.

2. #{} 占位符是为了获取值,获取的值用在 where 语句后,insert 语句后,update 语句。

#{} 获取值,是根据值的名称取值。#{} 可以使用3中类型的值填充。

a) 参数是基本数据类型。那么在映射的语句中可以不写 parameterType, #{} 中的参数名也可以随意些。

b) 参数是自定义类型。必须填写 parameterType , #{} 中名称是自定义类型的属性名,该属性有对应的 get 方法。如果没有get方法,那么会根据反射去获取该类型的值,如果找不到,那么报 ReflectionException 异常。

c) 参数可以是 map 类型。#{} 中的名称 map 中的 key 值即可。

 

#{} 也有不能处理的问题

不能作为表名

Select * from #{tablename}

也不能作为列名

Select * from t_user order by #{as}

3. ${} 占位符是字符串连接符,可以动态获取相关值。

能从 properties 文件中获取值,也可以作为表名,列名等值。

${} 占位符参数只能使用自定义类型和 map 类型。

 

附:

示例映射文件

insert into t_user(name,age) values(#{name},#{age})
delete from t_user where id=#{id}
update t_user set name=#{name},age=#{age} where id=#{id}

 

转载于:https://www.cnblogs.com/Vincent-yuan/p/11297400.html

你可能感兴趣的文章
Codeforces 450 C. Jzzhu and Chocolate
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
ACdream 1115 Salmon And Cat (找规律&&打表)
查看>>
JSON、JSONP、Ajax的区别
查看>>
AngularJS学习篇(一)
查看>>
【转载】 IP实时传输协议RTP/RTCP详解
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
Linux系统的数据写入机制--延迟写入
查看>>
css3动画——基本准则
查看>>
SQLite详解,案例,手册
查看>>
创建自己的内容提供器
查看>>
SSRS 数据源访问Cube 无法创建订阅的解决方法
查看>>
Spring之SpringMVC
查看>>
[转载]限制排列与棋盘多项式{理论}
查看>>
cookie、session 整理
查看>>
js 设计模式——观察者模式
查看>>
[nowcoder]再编号
查看>>
redis学习小结
查看>>
pku 3041 Asteroids 二分图匹配——匈牙利算法求最小点覆盖
查看>>
天津赛区总结
查看>>