1.看一下我们接口

package cn.bdqn.mybatis.dao;

import org.apache.ibatis.annotations.Select;

import cn.bdqn.mybatis.been.Emp;
/**
* 这个接口不用写实现类,是用来给empMapper.xml进行动态绑定的
* @author Administrator
*
*/
public interface EmpMapper { public Emp getEmpById(Integer id);
public void addEmp(Emp emp);
/**
* MyBatis允许增删改直接定义一下类型返回值
* int long boolean 以及相应的包装类,
* 在接口中定义方法的时候,直接定义相应的返回值即可,无其他操作
* @param emp
* @return
*/
public boolean updateEmp(Emp emp);
public void deleteEmpById(Integer id);
}

  

2.编写mapper

<?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:名称空间 -->
<mapper namespace="cn.bdqn.mybatis.dao.EmpMapper">
<!-- id,唯一标识 resultType:返回值类型,bean的全限定名称 #{id},从传递过来的参数中取出id值,相当于换位符 public
Emp getEmpById(Integer id); -->
<select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp"
databaseId="mysql">
select * from emp where id = #{id}
</select>
<select id="getEmpById" resultType="cn.bdqn.mybatis.been.Emp"
databaseId="oracle">
select * from emp where id = #{id}
</select>
<!-- public void addEmp(Emp emp); insert标签: id:对应我们javaBean的方法名 parameterType
可以省略,如果要写就是javaBean的全限定名称 insert into emp(last_name,gender,email) values(#{last_name},#{gender},#{email})
结尾不需要分号,values值的#{对应的javaBean的属性名} -->
<insert id="addEmp" parameterType="cn.bdqn.mybatis.been.Emp">
insert into emp(last_name,email,gender)
values(#{last_name},#{email},#{gender})
</insert>
<!-- update标签: public void updateEmp(Emp emp); id:对应我们javaBean的方法名 parameterType
可以省略,如果要写就是javaBean的全限定名称 update emp set last_name=#{last_name},email=#{email},gender=#{gender}
while id=#{id} 结尾不需要分号,#{}相当于占位符,等于我们传过来的值 -->
<update id="updateEmp">
update emp set last_name=#{last_name},email=#{email},gender=#{gender} where
id=#{id}
</update>
<!-- delet标签: public void deleteEmpById(Integer id); -->
<delete id="deleteEmpById">
delete from emp where id=#{id}
</delete> </mapper>

  3.编写测试类

package cn.bdqn.mybatis.test;

import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import cn.bdqn.mybatis.been.Emp;
import cn.bdqn.mybatis.dao.EmpMapper; public class MyBatisTest_02 {
public static void main(String[] args) throws IOException {
//获取SqlSessionFactory实例
String resource="mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);
//获取到的sqlsession不会自动提交
SqlSession openSession = build.openSession();
try{
//测试添加
EmpMapper mapper = openSession.getMapper(EmpMapper.class);
/* Emp emp = new Emp(null,"liyuanfeng","liyuanfeng@qq.com","1");
mapper.addEmp(emp);*/
//测试修改
Emp emp = new Emp(1,"liyuanfeng","liyuanfeng@qq.com","1");
mapper.updateEmp(emp); //进行手动提交
openSession.commit();
}finally{
openSession.close();
} } }

  

MyBatis编写映射文件实现增删改操作 附说明及代码的更多相关文章

  1. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  2. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  3. MyBatis映射文件1(增删改、insert获取自增主键值)

    增删改 Mybatis为我们提供了<insert>.<update>.<delete>标签来对应增删改操作 在接口中写增删改的抽象方法 void addEmp(Em ...

  4. MyBatis学习 之 三、SQL语句映射文件(2)增删改查、参数、缓存

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

  5. mybatis3.1-[topic-16-17]-映射文件_增删改查_insert_获取自增主键的值

    笔记要点出错分析与总结 /**测试第16章的增,删,改 的内容 * 错误1: <insert id="addEmp" parameterType="com.bean ...

  6. 二、SQL语句映射文件(2)增删改查、参数、缓存

    //备注:该博客引自:http://limingnihao.iteye.com/blog/106076 2.2 select 一个select 元素非常简单.例如: Xml代码 收藏代码 <!- ...

  7. SQL语句映射文件(2)增删改查、参数、缓存

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

  8. mybatis入门--单表的增删改操作

    单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作.首先是在user.xml文件中添加insert的方法.代码如下 <!-- ...

  9. 映射文件中增删改查标签中的parameterType和resultType

    parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中. resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射 ...

随机推荐

  1. php的四种基本算法

    /* 冒泡算法:结果从小到大,规则类似波浪推动的沙滩,先初始阈值为 0,初始第一次波浪之后,如果发现有左值比右边的大,就改变阈值并且完成波浪推动,重新初始化阈值为0,如此往复,直到没有阈值改变的情况出 ...

  2. python学习笔记十——模块与函数

    第五章 模块与函数 5.1 python程序的结构 函数+类->模块              模块+模块->包                 函数+类+模块+包=Python pyth ...

  3. text/css什麼意思

    text/css用在style的type屬性中,表示style的標簽里的文本內容要當做層疊樣式表(css)來解析,放在html的頁面內部,是HTML的內部樣式表: text/html用在style的t ...

  4. BZOJ2135 刷题计划(贪心+二分)

    相邻数作差后容易转化成将这些数最多再切m刀能获得的最小偏差值.大胆猜想化一波式子可以发现将一个数平均分是最优的.并且划分次数越多能获得的偏差值增量越小.那么就可以贪心了:将所有差扔进堆里,每次取出增量 ...

  5. 【BZOJ1822】[JSOI2010]冷冻波(二分,网络流)

    [BZOJ1822][JSOI2010]冷冻波(二分,网络流) 题面 BZOJ 洛谷 题解 先预处理每个巫妖可以打到哪些小精灵,然后二分答案,网络流判定即可. #include<iostream ...

  6. 【转】如何基于linux进程通信设计方案

    前言 linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的.而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在 ...

  7. android 下改变默认的checkbox的 选中 和被选中 图片

    1.   先导入  checked.png 和 unchecked.png 两张图片 2.  在res/drawable下面,添加selector (如 check_state.xml)文件: < ...

  8. 洛谷P4383 林克卡特树

    题意:树上最长不相交k条链. #include <cstdio> #include <algorithm> #include <cstring> typedef l ...

  9. A1005. Spell It Right

    Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output e ...

  10. qbxt的题:找一个三元环

    有向图中找一个三元环 题意: 考虑 N 个人玩一个游戏, 任意两个人之间进行一场游戏 (共 N*(N-1)/2 场),且每场一定能分出胜负.现在,你需要在其中找到三个人构成的这样的局面:A战胜B,B战 ...