MyBatis获取参数值的两种方式
在idea中设置模板
第一步 在setting中点击该选项
第二步 点击+号(以此方式添加模板)
MyBatis获取参数值的两种方式
MyBatis获取参数值的两种方式:${}和#{}
${}本质字符串拼接
#{}本质是占位符赋值
mapper接口方法的参数为单个字面量类型
可以通过${}和#{}以任意的字符串获取参数值,但是需要注意 ${}单引号问题
示例代码:
<!--TUser getUserByUsername(String username);-->
<select id="getUserByUsername" resultType="tUser">
<!--select * from t_user where username = #{username}-->
select * from t_user where username = '${username}'
</select>
mapper接口方法的参数为多个时
自动存入map
此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
a>以arg0,arg1…为键,以参数为值
b>以param1,param2…为键,以参数为值
因此只需要通过#{}和${}以键的方式访问值即可,但是需要注意 ${}单引号问题
示例代码:
<!-- TUser checkLogin(String username,String password);-->
<select id="checkLogin" resultType="tUser">
<!-- select * from t_user where username = #{arg0} and password = #{arg1};-->
select * from t_user where username = '${param1}' and password = '${param2}'
</select>
手动存入map
只需要通过#{}和${}以键的方式访问值即可,但是需要注意 ${}单引号问题
mapper接口方法的参数是实体类类型的参数
只需要通过#{}和
以属性的方式访问属性值即可
,
但是需要注意
{}以属性的方式访问属性值即可,但是需要注意
以属性的方式访问属性值即可,但是需要注意{}单引号问题
使用@Param注解命名参数
此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储
a>以@Param注解的值为键,以参数为值
b>以param1,param2…为键,以参数为值
只需要通过#{}和
以键的方式访问值即可
,
但是需要注意
{}以键的方式访问值即可,但是需要注意
以键的方式访问值即可,但是需要注意{}单引号问题
为什么这么多方法却说是两种方式?
因为我们将获取参数的情况可以分为两种,第一种是实体类对象情况,其余的全部都用@Param来实现