MyBatis映射文件
1.Mybatis映射文件简介
1)MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。
2)SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):
cache – 给定命名空间的缓存配置。
cache-ref – 其他命名空间缓存配置的引用。
resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加 载对象。
parameterMap – 已废弃!老式风格的参数映射。内联参数是首选,这个元素可能 在将来被移除,这里不会记录。
sql – 可被其他语句引用的可重用语句块。
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语
2.Mybatis使用insert|update|delete|select完成CRUD
1.select
1)Mapper接口方法
public Employee getEmployeeById(Integer id );
2)Mapper映射文件
<select id="getEmployeeById"
resultType="com.atguigu.mybatis.beans.Employee"
databaseId="mysql">
select * from tbl_employee where id = ${_parameter}
</select>
2.insert
1)Mapper接口方法
public Integer insertEmployee(Employee employee);
2)Mapper映射文件
<insert id="insertEmployee"
parameterType="com.atguigu.mybatis.beans.Employee"
databaseId="mysql">
insert into tbl_employee(last_name,email,gender) values(#{lastName},#{email},#{gender})
</insert>
3.update
1)Mapper接口方法
public Boolean updateEmployee(Employee employee);
2)Mapper映射文件
<update id="updateEmployee" >
update tbl_employee set last_name = #{lastName},
email = #{email},
gender = #{gender}
where id = #{id}
</update>
4.delete
1)Mapper接口方法
public void deleteEmployeeById(Integer id );
2)Mapper映射文件
<delete id="deleteEmployeeById" >
delete from tbl_employee where id = #{id}
</delete>
3.主键生成方式、获取主键值
1.主键生成方式
1)支持主键自增,例如MySQL数据库
2)不支持主键自增,例如Oracle数据库
2.获取主键值
1)若数据库支持自动生成主键的字段(比如 MySQL 和 SQL Server),则可以设置 useGeneratedKeys=”true”,然后再把 keyProperty 设置到目标属性上。
<insert id="insertEmployee" parameterType="com.atguigu.mybatis.beans.Employee"
databaseId="mysql"
useGeneratedKeys="true"
keyProperty="id">
insert into tbl_employee(last_name,email,gender) values(#{lastName},#{email},#{gender})
</insert>