MyBatis使用
接口有多个参数
方式1:使用 #{param1} 内置的参数param1对应dao接口的第一个参数
接口: List<Owner> findByPage(Integer start, Integer pageSize); 映射: SELECT id,user_name userName,tel,sex,identity,remarks FROM `owner` limit #{param1},#{param2}
方式2:@Param注解指定映射文件中占位符的值
接口: List<Owner> findByPage(@Param("start") Integer start, @Param("pageSize") Integer pageSize); 映射: SELECT id,user_name userName,tel,sex,identity,remarks FROM `owner` limit #{start},#{pageSize}
动态SQL:set标签
【MyBatis官网】
*set* 元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号
接口:
void update(Owner owner);
映射:
<update id="update"> update owner <set> <if test="userName != null and userName.trim() != ''"> user_name=#{userName}, </if> <if test="tel != null and tel.trim() != ''"> tel=#{tel}, </if> <if test="sex != null"> sex=#{sex}, </if> <if test="identity != null"> identity=#{identity}, </if> <if test="remarks != null"> remarks=#{remarks} </if> </set> where id=#{id} </update>
动态SQL:foreach标签
接口:
void delBatch(@Param("ids") Integer[] ids);
映射:
<delete id="delBatch"> delete from owner where id in <foreach collection="ids" open="(" item="temp" separator="," close=")"> #{temp} </foreach> </delete>
collection: 遍历的集合
open: 拼接的开始
item: 定义一个变量存储迭代的每一个元素
separator: 分隔符
close: 拼接的结束
练习:条件分页查询
需求:根据用户名、电话、性别查询,用户