映射文件:

映射文件是根据数据库模型生成的编写sql脚本xml文件, mapper标签中namespace属性值为对应模型实体类的全类名。

 <?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.itdoc.mybatis.bc.dao.EmployeeMapper"> <select id="queryById" resultType="com.itdoc.mybatis.bc.entity.EmployeeEntity">
SELECT
id AS `id`
, last_name AS `name`
, email AS `email`
, gender AS `gender`
FROM employee a
WHERE 1 = 1
AND id = #{id}
</select> <insert id="insert" parameterType="com.itdoc.mybatis.bc.entity.EmployeeEntity">
INSERT INTO employee (
last_name
, email
, gender)
VALUES (
#{name}
, #{email}
, #{gender}
)
</insert> <update id="update" parameterType="com.itdoc.mybatis.bc.entity.EmployeeEntity">
UPDATE employee
SET last_name = #{name}
, email = #{email}
, gender = #{gender}
WHERE 1 = 1
AND id = #{id}
</update> <delete id="delById">
DELETE
FROM employee
WHERE 1 = 1
AND id = #{id}
</delete>
</mapper>

EmployeeMapper.xml

EmployeeMapper.java接口:全类名com.itdoc.mybatis.bc.dao.EmployeeMapper

 /**
* @filename: EmployeeMapper.java
* @desc 数据库模型映射接口
* @author: Wang Chinda
* @blog http://www.cnblogs.com/goodcheap
* @date: 2018-01-30 10:15
* @version: v1.0
* @copyright: Copyright © 2018 ༄ྂ祸ྂྂ害ོ༘苍ྂྂ生ོ༘࿐ྂ 版权所有
* @modify_history: -
* 20180130 Wang Chinda create
* 20180130 Wang Chinda modify method()
*/
package com.itdoc.mybatis.bc.dao; import com.itdoc.mybatis.bc.entity.EmployeeEntity;
import com.itdoc.mybatis.common.base.dao.BaseDao; /**
* @desc 数据库模型映射接口
* @author Wang Chinda
* @create 2018-01-30 10:15
*/
public interface EmployeeMapper extends BaseDao<EmployeeEntity> { }

EmployeeMapper

 /**
* @filename: BaseDao.java
* @desc 基础数据模型接口
* @author: Wang Chinda
* @blog http://www.cnblogs.com/goodcheap
* @date: 2018-01-30 10:35
* @version: v1.0
* @copyright: Copyright © 2018 ༄ྂ祸ྂྂ害ོ༘苍ྂྂ生ོ༘࿐ྂ 版权所有
* @modify_history: -
* 20180130 Wang Chinda create
* 20180130 Wang Chinda modify method()
*/
package com.itdoc.mybatis.common.base.dao; /**
* @desc 基础数据模型接口
* @author Wang Chinda
* @create 2018-01-30 10:35
*/
public interface BaseDao<T> { /**
* 根据对象保存数据
* @param entity
* @return
*/
boolean insert(T entity); /**
* 根据主键删除数据
* @param id
* @return
*/
boolean delById(String id); /**
* 根据对象删除数据
* @param entity
* @return
*/
boolean del(T entity); /**
* 根据对象更新数据
* @param entity
* @return
*/
boolean update(T entity); /**
* 根据主键查询数据
* @param id
* @return
*/
T queryById(String id);
}

BaseDao

注意: 此处命名空间对应是为增删改查时方法名与标签id对应。如: BaseDao 中的 insert 方法对应 EmployeeMapper.xml 中 id 为 insert 的 <insert> 标签, 执行此标签中的 SQL 脚本。

运行示例:

testInsert方法数据库中数据:

testUpdate方法数据库中数据:

testSelcet方法控制台显示:

testDelete方法数据库中数据:

GitHub源码: mybatis-02

Mybatis(3) 映射文件-增删改查的更多相关文章

  1. mybatis的sql映射文件—增删改查

    前提:需要的包log4j.jar,mybatis-3.4.1.jar,mysql-connector-java-5.1.37-bin.jar 1.基本类 员工类 package com.hand.my ...

  2. mybatis 学习四(下) SQL语句映射文件增删改查、参数、缓存

    2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...

  3. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  4. Mybatis实现数据的增删改查

    Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...

  5. 【基础篇】js对本地文件增删改查

    [基础篇] js对本地文件增删改查--增 js对本地文件增删改查--删 js对本地文件增删改查--改 js对本地文件增删改查--查

  6. 【基础篇】js对本地文件增删改查--查

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  7. 【基础篇】js对本地文件增删改查--改

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  8. 【基础篇】js对本地文件增删改查--删

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  9. 【基础篇】js对本地文件增删改查--增

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

随机推荐

  1. 【RL系列】Multi-Armed Bandit笔记——UCB策略与Gradient策略

    本篇主要是为了记录UCB策略与Gradient策略在解决Multi-Armed Bandit问题时的实现方法,涉及理论部分较少,所以请先阅读Reinforcement Learning: An Int ...

  2. [C++] in-class initializer

    C++11 introduced serveral contructor-related enhancements including: Class member initializers Deleg ...

  3. selenium识别登录验证码---基于python实现

    本文主要是通过PIL+pytesseract+Tesseract-OCR实现验证码的识别 其中PIL为Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PI ...

  4. es6从零学习(三):Class的基本用法

    es6从零学习(三):Class的基本用法 一:定义一个类 //定义类 class Point { constructor(x, y) { this.x = x; this.y = y; } toSt ...

  5. android BadgeView的使用(图片上的文字提醒)

    BadgeView主要是继承了TextView,所以实际上就是一个TextView,底层放了一个label,可以自定义背景图,自定义背景颜色,是否显示,显示进入的动画效果以及显示的位置等等: 这是Gi ...

  6. [经典贪心算法]Prim算法

    最小生成树的Prim算法也是贪心算法的一大经典应用.Prim算法的特点是时刻维护一棵树,算法不断加边,加的过程始终是一棵树. Prim算法过程: 一条边一条边地加, 维护一棵树. 初始 E = {}空 ...

  7. java定时执行任务(一)

    需求: 经常遇到这样的需求:要求每天执行一次任务,执行任务时间是凌晨3点 实现: 为了便于检测,我假设的是下一分钟执行任务,每10秒重复执行.(对应现实项目:每天3点执行任务.那么就是下一个3点执行任 ...

  8. 3ds Max学习日记(七)

      第7章讲的是多边形建模,实例略多,有十六个,再加上周日的怠惰感,只做了几个实例. 附上今日的劳动成果:   布料(创建一个平面,转换为可编辑多边形,然后调整顶点,连接一些边,添加网格平滑,转换为可 ...

  9. Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署

    配置ssh免秘钥登录 安装Publish over SSH插件 插件使用官网:https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plug ...

  10. mstsc远程登录终端超出最大连接数的解决办法

    1,.远程服务器有两个用户登录 2.第三个登录时提示:终端服务器超出了最大允许连接,这种情况怎么解决 A.通过运行命令来解决:运行输入mstsc /admin /v:IP:端口  敲回车来解决,这里的 ...