Mydatis_day2
mapper文件中的另一种取值语法
- ${}取值方法的使用
public interface AccountDao{
Account selectByCardId(@Param("cardId")Integer cardId)
<select id="selsectByCardId" resultType="com.baizhi.entity.Account">
select car_id,username,password,balance,mobile from account
where card_id=${cardId}
</select>
}
2.#{}于${}两种语法生成SQL语句的方式对比
2.1#{}
#{}以占位符的方式生成SQL语句,可以避免SQL注入的风险
2.2 ${}
${}以字符串拼接的形式生成SQL语句,存在SQL注入的风险
使用Mybatis开发关联关系的查询
-
表的设计
1.1一对一的场景(一对一的场景,表的外键放在哪一方都可以)
1.2一对多场景(外键存放在多的一方) -
Java中的对应实体设计
2.1一对一:对于关系属性,放置在根据谁找谁的,根据谁的一方。
2.2一对多:对于关系属性,放置在根据谁找谁的,根据谁的一方。
PS:关系属性的确立,要根据实际的业务场景进行分析,一般很少有双向关系的场景 -
使用Mybatis开发关联关系的查询
3.1一对mapper实现
3.2一对多mapper实现
总结
- 关联关系Mybati查询的实现
1.1如果关系属性是一个简单的Java自定义对象类型,使用association标签封装
1.2如果关系属性是一个list集合,则使用Collection标签封装。