MyBatis之动态sql
1.什么是动态sql
mybatis重点是对sql语句是灵活的组织,由程序员编写sql语句,通过配置方式完成输入、输出映射。
mybatis通过标签拼接sql语句,去组织sql 语句。
2.需求
对用户综合查询statement定义进行优化,使用动态sql。
1、用户查询条件可以灵活拼接,当用户输入查询条件再拼接到sql中。
2、对mapper.xml中重复的sql抽取统一维护。
3.if判断
解决:用户查询条件可以灵活拼接,当用户输入查询条件再拼接到sql中
4.sql片段
解决:对mapper.xml中重复的sql抽取统一维护
4.1定义
4.2.引用sql片段
5.foreach
mybatis使用foreach循环遍历输入的参数。
5.1需求
根据用户多个id查询用户信息。
实现方式:
SELECT * FROM USER WHERE sex = ‘1’ AND id IN (1,10,16)
也可以:
SELECT * FROM USER WHERE sex = ‘1’ AND (id=1 OR id=10 OR id=16)
5.2.po类修改
使用queryUserVo包括对象使用List传递多个id
5.3.mapper.xml
5.4.测试