在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来实现