目录
1.动态MySQL
1.1set标签
1.2foreach标签
2.mybatis映射文件处理特殊字符
3.mybatis模糊查询
3.1使用字符串函数拼接
4.连表查询
1.动态MySQL
1.1set标签
set标签一般配合if标签使用于修改语句,如果传递的参数为null,那么不会修改该列的值
update t_student where id=#{id} name=#{name}, age=#{age}, sex=#{sex}, address=#{address},
1.2foreach标签
如果你使用的为数组array 如果你使用的为集合 那么就用list
collection:类型
item:数组中每个元素赋值的变量名
open: 以谁开始
close:以谁结束
separator:分割符
如果你使用的为数组array 如果你使用的为集合 那么就用list
collection:类型
item:数组中每个元素赋值的变量名
open: 以谁开始
close:以谁结束
separator:分割符
根据id查询
删除
#{id}
添加
insert into t_student(name,age) values (#{stu.name},#{stu.isdeleted})
2.mybatis映射文件处理特殊字符
3.mybatis模糊查询
select * from 表明 where 列明 like '%%'
3.1使用字符串函数拼接
select * from t_student where name like concat('%',#{name},'%')
3.2使用${}
通过使用发现${}实际上是字符串拼接,它不能防止sql注入, 而#{}它是预编译,它可以防止sql注入问题,#{}实际使用的PreparedStatement.
4.连表查询
1.多对一:从数据多的地方来查询一的一方
班级表:
学生表:
学生实体类
package com.lpt.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private int id;
private String name;
private int age;
private Integer classId;
private Clazz clazz;//学生所属的班级
}
把链表查询体现到实体类上
package com.lpt.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Clazz {
private Integer cid;
private String cname;
}
查询结果如下



