知识的价值不在于占有,而在于使用。这篇文章主要讲述EmployeeMapper.xml例子,学习佟刚老师的myBatis课程,记录下的EmployeeMapper.xml,注释详细相关的知识,希望能为你提供帮助。
<
?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">
<
mapper namespace="com.atguigu.mybatis.dao.EmployeeMapper">
<
!--
NameSpace:名称空间,指定为接口的完整类名
ID:唯一标识符
resultType:返回值类型
#{id}:从传递过来的参数中取出ID值
这个是接口里面的方法,获取数据对象:public Employee getEmpById(Integer id);
-->
<
select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee" databaseId="mysql">
select id, last_name LastName, email from tbl_employee where id = #{id}
<
/select>
<
select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee" databaseId="oracle">
select EMPLOYEE_ID id, LAST_NAME lastName, GENDER gender, EMAIL email
from EMPLOYEE where EMPLOYEE_ID = #{id}
<
/select>
<
select id="selectEmp"resultType="com.atguigu.mybatis.bean.Employee" databaseId="mysql">
select id, last_name LastName, email, gender from tbl_employee where id = #{id}
<
/select>
<
!-- public void addEmp(Employee employee);
-->
<
!--获取自增主键的值:
MYSQL支持自增主键,自增主键值的获取,myBatis也是利用Statement.getGeneratedKeys()来获取
在insert标签中添加useGeneratedKeys="true";
使用自增主键获取主键值策略
keyProperty:用来指定获取到的主键值赋值到这个值中,这个值可以封装到javaBean的Employee.id中
-->
<
!-- useGeneratedKeys="true" keyProperty="id" -->
<
insert id="addEmp"databaseId="mysql">
insert into tbl_employee(id, last_name, gender, email) values(#{id}, #{lastName}, #{gender}, #{email})
<
/insert>
<
!-- Oracle不支持自增,但是Oracle可以利用序列来模拟自增
每次插入的数据的主键值是从序列中拿到的值;如何获取到这个值呢?
-->
<
!-- keyProperty:查出主键并且封装给JavaBean的属性ID
order = "BEFORE"指定当前SQL在插入操作之前运行
= "AFTER" 指定在当前的SQL之后
resultType:查出来的主键要封装的类型是什么,需要在这里指定
BEFORE运行顺序: 先运行selectKey查询id的SQL:查出id封装给javaBean的id属性
再运行插入的SQL,就可以取出id属性对应的值
AFTER 运行顺序:先运行插入的SQL(从序列中取出新值作为id
再运行selectKey查出id的SQL-->
<
insert id="addEmp" databaseId="oracle" >
<
!--<
selectKey keyProperty="id" order = "BEFORE">
select EMPLOYEE_SEQ.nextVal from dual
<
/selectKey>
-->
<
!-- 插入时的主键是从序列中拿到的-->
<
!-- BEFORE -->
<
!-- ,jdbcType=NULL -->
insert into EMPLOYEE(EMPLOYEE_ID, LAST_NAME,GENDER,EMAIL) values(#{id}, #{lastName}, #{gender}, #{email})
<
/insert>
<
!-- 还可以这么来写 -->
<
!-- AFTER -->
<
!--
<
insert id="addEmp" databaseId="oracle" >
<
selectKey keyProperty="id" order = "AFTER">
select EMPLOYEE_SEQ.currVal from dual<
/selectKey>
-->
<
!--insert into EMPLOYEE(EMPLOYEE_ID, LAST_NAME,GENDER,EMAIL)
values(EMPLOYEE_SEQ.nextVal, #{lastName}, #{gender}, #{email})-->
<
!-- 多参数查询 -->
<
select id="getEmpByIdAndLastName" resultType="com.atguigu.mybatis.bean.Employee">
select * from EMPLOYEE where EMPLOYEE_ID = #{id} and LAST_NAME = #{lastName}
<
/select>
<
!--多参数查询,使用map封装参数 -->
<
select id="getEmpByMap" resultType="com.atguigu.mybatis.bean.Employee">
select * from EMPLOYEE where EMPLOYEE_ID = #{id} and LAST_NAME = #{lastName}
<
/select>
<
!-- public void deleteEmp(Integer id);
-->
<
delete id="deleteEmpById">
delete from EMPLOYEE where EMPLOYEE_ID = #{id}
<
/delete>
<
!-- public void updateEmp(Employee employee);
-->
<
update id="updateEmp">
update EMPLOYEE
set LAST_NAME = #{lastName}, EMAIL = #{email}, GENDER = #{gender}
where id = #{id}
<
/update>
【EmployeeMapper.xml例子,学习佟刚老师的myBatis课程,记录下的EmployeeMapper.xml,注释详细】<
/mapper>
推荐阅读
- 用画布canvas画安卓logo
- NatApp开启HTTPS访问方式
- async - create-react-app
- xamarin android 文件选择
- Android 四大组件ContentProvider介绍
- On The Way!
- APP开发基础知识
- Android获取当前可用内存
- function 之 arguments call apply