一.mybatis中模糊查询的方法:
- 直接传参法:在java传参时进行拼接 -- %keyword%
- mysql内置函数:concart('%',#{keyword},'%') -- 拼接sql字符串
- bind标签
like "%"#{keyword}"%"
或者like "%${keyword}%"
(不能防止sql注入攻击)
通过注解时模糊查询的方法:
- 直接传参法
select * from blog where title like '%'||#{v}||'%'
select * from blog where title like CONCAT('%',#{v},'%')
二.表字段与实体属性不同时
- 自动映射(resultType):表字段使用别名
- 手动映射(resultMap):单表时,可以省略其它表字段与实体属性相同的,只写不同的
<result/>
三.关联查询(级联查询):两表连接inner join/left join
select o.id,o.name,o.price,u.username from order o left join user u on o.id=u.id
- 1.一个对象将另一对象作为属性
- 2.自定义pojo类,可以用继承关系,包含结果集的字段
注意:
- 级联查询时:需要手动映射(resultMap),可省略相同的,所有
<result/>
都必须给出; 多表连接时,不可省略相同的 - 一对一:associate 一对多:collection