employeemapper.xml例子,学习佟刚老师的mybatis课程,记录下的employeemapper.xml,注释详细

何茫然zju      2022-02-12     267

关键词:

<?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>

















































































mybatismybatis对表执行crud操作

  本例在【Mybatis】MyBatis配置文件的使用(二)基础上继续学习对表执行CRUD操作使用MyBatis对表执行CRUD操作  1、定义sql映射xml文件(EmployeeMapper.xml)1<?xmlversion="1.0"encoding="UTF-8"?>2<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0 查看详情

mybatis文件映射之select操作返回map

1、返回的Map键为列所对应的名称,值就是具体的值EmployeeMapper.javapublicMap<String,Object>getEmpByIdReturnMap(Integerid);EmployeeMapper.xml<selectid="getEmpByIdReturnMap"resultType="map">selectid,last_namelastN 查看详情

mybatisbigdecimal对应啥类型

...例,看看具体的操作方式。第一种方式使用顺序传递参数EmployeeMapper.java文件:EmployeeMapper.xml文件:注意:xml里面的param1,param2的数字代表方法传入参数的顺 查看详情

增删改查

1、项目结构2、主要代码  ①EmployeeMapper.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespac 查看详情

javaee——案例:员工管理系统(代码片段)

...赖——pom.xml4.配置文件——myBatis-config.xml5.映射文件——EmployeeMapper.xml6.java类——Employee.java7.接口类——EmployeeMapper.java8.测试类——MyBatisTest.java(1)根据id查询员工信息(2)新增员工信息(3)根据id更新... 查看详情

markdown学习例子

运维文档一级标题二级标题选择一选择二三级标题选择一选择二选择三这里是一段引用 这是一个学习Markdown的超链接例子这里是加粗强调,这里是倾斜强调 查看详情

eureka学习例子

Eureka学习例子学习地址:https://github.com/MyCreazy/EurekaStudy这里有参考http://blog.csdn.net/nero__a/article/details/65631367进行总结操作SpringCloud下有很多工程:SpringCloudConfig:依靠git仓库实现的中心化配置管理。配置资源可以映射到Spring的不同... 查看详情

学习makefile例子

...le》,由陈皓编写。这里只是提供学习Makefile的笔记和例子。1.概述1.1为什么学习Makefile什么是makefile?或许很多Windows的程序员都不知道这个东西,因为那些Windows的集成开发环境(integrateddevelopmentenvironment,IDE 查看详情

qtblockingmaster例子学习

dialog.h:#ifndefDIALOG_H#defineDIALOG_H#include<QDialog>#include"masterthread.h"//这里的写法有点。。为什么不直接加头文件QT_BEGIN_NAMESPACEclassQLabel;classQLineEdit;classQSpinBox;classQPushButton;classQComboBox;QT 查看详情

学习tensorflow的lstm的rnn例子

 学习Tensorflow的LSTM的RNN例子 基于TensorFlow一次简单的RNN实现 极客学院-递归神经网络 如何使用TensorFlow构建、训练和改进循环神经网络 查看详情

scala递归学习的例子

为了学习Spark,我开始了学习Scala。加油!递归的一个题目:代码://WhyxisFloat,butwhenweuse3.0forexample,itreturnserror.defXpowN(X:Float,n:Int):Float={if(n==0)1elseif(n>0){if(n%2==0)XpowN(X,n/2)*XpowN(X,n/2)elseX*XpowN(X,n-1)} 查看详情

opencvsvm介绍和自带例子

依据机器学习算法如何学习数据可分为3类:有监督学习:从有标签的数据学习,得到模型参数,对测试数据正确分类;无监督学习:没有标签,计算机自己寻找输入数据可能的模型;强化学习(reinforcementlearning):计算机与动... 查看详情

sql存储过程例子和学习demo(代码片段)

---------------------------------------------------------------------------------------------------------存储过程Study-------------------------------------------------------------------------------------- 查看详情

峰spring4学习springaop的应用例子

一、AOP简介:二、AOP实例:三、使用的例子需求:在student添加的前后,打印日志信息;0)springAOP需要引用的jar包: 1)StudentService.java接口:packagecom.cy.service;publicinterfaceStudentService{publicvoidaddStudent(Stringname);}ViewCode2)Studen 查看详情

lua学习例子

extern"C"{#include<lua.h>#include<lauxlib.h>#include<lualib.h>}#include<stdarg.h>#include<stdio.h>#include<stdlib.h>#pragmacomment(lib,"lua.lib")voiderror(lua_State 查看详情

简单例子说明梯度下降momentum和学习率衰减

【梯度下降法】一:快速教程、Python简易实现以及对学习率的探讨【梯度下降法】二:冲量(momentum)的原理与Python实现【梯度下降法】三:学习率衰减因子(decay)的原理与Python实现 查看详情

java学习——多线程例子:银行

 packagecys;publicclassExample9_3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubBankbank=newBank();bank.setMoney(200);Threadthread1,thread2;thread1=newThread(bank);thread1.setN 查看详情

java学习——多线程例子:李四王五

 packagecys;publicclassExample9_2{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubPeoplepersonal1,personal2;StringBufferstr=newStringBuffer();personal1=newPeople("李四",str);person 查看详情