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>

</mapper>

原文地址:https://www.cnblogs.com/zjulanjian/p/9194923.html

时间: 2024-10-12 07:42:09

EmployeeMapper.xml例子,学习佟刚老师的myBatis课程,记录下的EmployeeMapper.xml,注释详细的相关文章

Maven出现User setting file does not exist ...\.m2\setting.xml的问题解决(同时也解决用户.m2目录下无setting.xml文件)

如果Eclipse中出现User setting file does not exist ...\.m2\setting.xml这样的问题,解决方法如下: 1.拷贝%M2_HOME%/conf/settings.xml的文件到%USER_HOME%/.m2/settings.xml中即可. 经过研究,同时也发现,在Maven安装好之后,%USER_HOME%/.m2目录下是不存在settings.xml的.而通过官方说明找到了答案http://maven.apache.org/settings.

【团购巨划算】韩立刚老师门徒级学习专题,只此一次的超大优惠福利

Q:韩立刚老师是谁? A:韩老师是51CTO金牌讲师(最高级别),也是微软最有价值专家MVP.微软企业护航专家.<计算机网络原理>一书作者 讲师主页:http://edu.51cto.com/lecturer/400469.html Q:门徒级学习专题是什么? A:韩立刚老师门徒级课程专题(Windows Server+网络安全+数据库) 韩老师从2013年至今,根据企业对IT运维人才的技术要求,录制视频教程49 门,时长达581小时50分钟.旨在从0起点培养企业高端IT人才,让你在企业IT部

MyBatis学习手记(二)MyBatis缓存机制

MyBatis学习手记二 前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html 一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包              链接:https://github.com/mybatis/mybatis-3/releases 这里使用的数据库是MySQL,所以还需要Mysql的驱动包. 二,看MyBatis官方介绍,说MyBatis支持一级缓存,二级缓存.这里才

【代码笔记】XML深入学习:DTD约束与DTD语法(1)

2015-12-27 文件名    student.xml 1 <?xml version="1.0" encoding="GB2312" standalone="no"?> 2 <!--大家好,我是注释--> 3 <!--2015.12.27--> 4 <!DOCTYPE students SYSTEM "student.dtd"> 5 <!--这里没写盘符,及表示当前目

XML之学习笔记

参考:http://www.w3school.com.cn/xml/index.asp中的 树结构.语法.元素.属性.验证.命名空间.编码 目的:理解Android开发中的.xml文件是怎样的 XML代码均摘自ADT(Android Development Tools),讲述如有谬误,敬请指正. XML规定:区分大小写.必须有根元素.标签打开了就要关闭 一.元素 开始标签到结束标签的部分,特定类型的一个事物 <.../>不允许有子元素, 即叶节点 <...>...<.../&

HTML5 例子学习 HT 图形组件

HTML5 例子学习 HT 图形组件 HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打磨,如今 HT 算是达到了这样的效果,谈不上用尽洪荒之力,但我们对产品结果很满意,特别是 HT 的用户手册,将例子和文档无缝融合一体,小小 10 来兆开发包居然包含了四十五份手册,数百个活生生的 HTML5 例子,还没体验过的同学可以点击 http://www.

数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇

HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打磨,如今 HT 算是达到了这样的效果,谈不上用尽洪荒之力,但我们对产品结果很满意,特别是 HT 的用户手册,将例子和文档无缝融合一体,小小 10 来兆开发包居然包含了四十五份手册,数百个活生生的 HTML5 例子,还没体验过的同学可以点击 http://www.hightopo.com/guide/

IOS学习:ios中的数据持久化初级(文件、xml、json、sqlite、CoreData)

IOS学习:ios中的数据持久化初级(文件.xml.json.sqlite.CoreData) 分类: ios开发学习2013-05-30 10:03 2316人阅读 评论(2) 收藏 举报 iOSXMLJSONSQLiteCoreData 一.文件操作 1.因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 * tmp:存放临时文件,iTunes不会备份和恢复

XML简单学习

XML简单概述 1.Extensible Markup language可扩展标记语言; 2.作用:具有层次性的描述有关系的数据: 体现在:描述数据关系:软件配置,以描述程序模块之间的关系: 语法介绍 1.文档声明: <?xml version="1.0" encoding="utf-8" ?> 注意编码的统一性 储存在内存中的编码格式,与解析器打开的两者统一 2.元素:element 成对标签 <label>pcdata</lable