您的位置:首页 > 移动开发

MyBatis的Mapper映射文件详解

2017-06-03 20:57 423 查看
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
namespace:命名空间,接口的全类名
id:唯一标示
resultType:返回值类型
#{id}:从传递过来的参数中取出id的值
-->
<mapper namespace="com.flx.mybatis.guigu.employee.dao.EmployeeMapper">

<!--Map传参-->
<select id="getEmployeeByParamMap" resultType="com.flx.mybatis.guigu.bean.Employee" databaseId="mysql">
select * from tb1_employee where id=#{id} and last_name=#{lastName}
</select>

<!--注解支持的传参-->
<select id="getEmployeeByIdAndLastName" resultType="com.flx.mybatis.guigu.bean.Employee" databaseId="mysql">
select * from tb1_employee where id=#{id} and last_name=#{lastName}
</select>

<!--这条语句在mysql环境下面使用的,databaseId-->
<select id="getEmployeeById" resultType="com.flx.mybatis.guigu.bean.Employee" databaseId="mysql">
select * from tb1_employee where id = #{id}
</select>

<!--这条语句在oracle环境下面使用的,databaseId-->
<select id="getEmployeeById" resultType="com.flx.mybatis.guigu.bean.Employee" databaseId="oracle">
select emp_id id,emp_name lastName,emp_age age from employee where emp_id = #{id}
</select>

<!--下面写增删改-->

<!--参数类型可以省略-->
<!--支持主键获取
useGeneratedKeys = true 使用自增主键获取值
keyProperty = id 将获得的id放在id属性中
-->
<insert id="addEmployee" parameterType="com.flx.mybatis.guigu.bean.Employee" databaseId="mysql"
useGeneratedKeys="true" keyProperty="id">
insert into tb1_employee (last_name,gender,email)
VALUES (#{lastName},#{gender},#{email})
</insert>

<!--oracle不支持自增,支持序列-->
<insert id="addEmployee" databaseId="oracle">
<!--order: 当前sql在插入sql之前运行-->
<selectKey keyProperty="id" order="BEFORE" resultType="Integer" >
<!--编写查询主键的sql-->
select seq_employee.nextval from dual
</selectKey>
<selectKey keyProperty="id" order="AFTER" resultType="Integer" >
<!--insert语句执行完执行这个-->
select seq_employee.currval from dual
</selectKey>
<!--流程:查询seq序列的sql先执行结果赋值给id,然后执行insert语句时候动态把id传给insert的sql完成主键的存储-->
insert into employee (emp_id,last_name,gender,email)
VALUES (#{id},#{lastName},#{gender},#{email})
</insert>

<update id="updateEmployee" >
update tb1_employee set last_name=#{lastName},gender=#{gender},email=#{email}
where id=#{id}
</update>

<delete id="deleteEmployee">
delete from tb1_employee where id=#{id}
</delete>

</mapper>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: