目录
mybatis获取参数值的两种方式
mybatis获取参数值的两种方式:#{}和${}
#{}的本质是占位符 ,${}的本质是字符串的拼接
1.若mapper的接口方法的参数为单个的字面量类型
此时可以通过#{}和${}以任意的内容参数获取参数值,一定注意${}的单引号问题 '${}'
2.若mapper接口方法的参数为多个的字面量类型
此时mybatis会将参数放在map集合中,以两种方式存储数据
a,以arg0,arg1....为键,以参数为值
b,以param1,param2.....为键,以参数为值
因此,只需要通过#{}和${}访问map集合的键,就可以获取相应的值,一定注意${}的单引号问题 '${}'

3.若mapper接口方法的参数为map集合类型的参数
只需要通过#{}和${}访问map集合的键,就可以获取相应的值,一定注意${}的单引号问题 '${}'
4.若mapper接口方法的参数实体类中的属性名,就可以获取相对应的属性值,一定注意${}的单引号问题 '${}'
5.可以在mapper接口方法的参数上设置@param注解
此时mybatis会将这些参数放在map中,以两种方式进行存储
a,以@param注解的value属性值为键,以参数为值
b,以param1,param2 为键,以参数为值
只需要通过#{}和${}访问map集合的键,就可以获取相应的值,一定注意${}的单引号问题 '${}'
mybatis的各种查询
1.查询一个实体类对象
User getUserById(@param("id") int id);
2.查询一个list的集合
List <User> getUserList();
若sql语句查询的结果为多条时,一定不能以实体类类型作为方法的返回值,否则会抛出异常TooMangResultsException
若sql语句查询的结果为1时,此时可以使用实体类类型或list集合类型作为方法的返回值
3.模糊查询
select * from user where username like '%${ }%'
select * from user where username like concat('%',#{ },'%')
select * from user where username like "%"#{mohu}"%"
批量删除
delete from user where id in(${id})
动态设置表名
select * from ${tableName
本文围绕MyBatis展开,介绍了获取参数值的两种方式#{}和${},针对不同参数类型说明获取值的方法及${}单引号问题。还阐述了MyBatis的各种查询,如查询实体类对象、list集合、模糊查询,此外提及批量删除和动态设置表名的操作。
2621

被折叠的 条评论
为什么被折叠?



