1.能用注解为什么要会用xml文件编写sql?
一些公司为了阅读美观,也是为了解耦将业务代码和sql编写分开,所以xml编写sql很常见。
2.怎么写xml映射文件?
图1
图2
图3
如图2解释1:在resource下面建立同级的包名,再建立xml映射文件(写包名时可以用斜线 划分层级,如 com\example\springbootbatis2,包建立完可以用 图3 的Explorer查看是建立的多久目录还是一个很长名字的目录 进行确认)。
解释2:在xml文件中导入模板:(也可从mybatis官网获取)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="">
</mapper>
图4
解释2.2,见图4:1(此处只是做了模糊,不必过多关注)指的是映射文件的地址 一致。2指的 方法名即id 一致。3指的数据库表的字段和对象属性一致就用resultType类型,并指定java对象的地址如图中的User对象。4.就是你进行sql编写。
注意:除了select,还有update delete insert。
例如:
MyBatis完成MySQL的批量操作主要是通过<foreach>标签来拼装相应的SQL语句
<insert** id="insertBatch" >
insert into tbl_employee(last_name,email,gender,d_id) values
<foreach** collection="emps" item="curr_emp" separator=","**>
(#{curr_emp.lastName},#{curr_emp.email},#{curr_emp.gender},#{curr_emp.dept.id})
</foreach>
</insert>