MyBatis:映射文件
点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
insert into Employee(empName,empSex,empPhone,hireDate) values (#{empName},#{empSex},#{empPhone},#{hireDate})
delete from Employee where id=#{id}
update Employee set empName=#{empName},empSex=#{empSex},empPhone=#{empPhone},hireDate=#{hireDate} where id=#{id}
参数处理
1、单个参数
mybatis不做特殊处理,使用#{参数名},取出参数值。
2、多个参数
mybatis会做特殊处理,多个参数会被封装为一个map。
key:param1,param2...
value:传入的参数值
所以需要使用#{param1}取出对应的参数值
3、多个参数建议处理方式
使用@Param注解对参数进行标注
Employee getEmployeeById(@Param("id") int id);
然后使用#{参数名},取出参数值
4、#{}与${}区别
'#{}':是以预编译的形式,将参数设置到sql中,防止sql注入。
${}:取出的值直接封装到sql语句中,存在注入漏洞的安全问题。${}主要用于拼接模糊查询,例如
注意:常见报错
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'empName' in 'class java.lang.String'
原因:
处理方式: