MyBatis编写映射文件实现增删改操作 附说明及代码
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编写映射文件实现增删改操作 附说明及代码的更多相关文章
- MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存
二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...
- MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存
目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...
- MyBatis映射文件1(增删改、insert获取自增主键值)
增删改 Mybatis为我们提供了<insert>.<update>.<delete>标签来对应增删改操作 在接口中写增删改的抽象方法 void addEmp(Em ...
- MyBatis学习 之 三、SQL语句映射文件(2)增删改查、参数、缓存
2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...
- mybatis3.1-[topic-16-17]-映射文件_增删改查_insert_获取自增主键的值
笔记要点出错分析与总结 /**测试第16章的增,删,改 的内容 * 错误1: <insert id="addEmp" parameterType="com.bean ...
- 二、SQL语句映射文件(2)增删改查、参数、缓存
//备注:该博客引自:http://limingnihao.iteye.com/blog/106076 2.2 select 一个select 元素非常简单.例如: Xml代码 收藏代码 <!- ...
- SQL语句映射文件(2)增删改查、参数、缓存
2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...
- mybatis入门--单表的增删改操作
单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作.首先是在user.xml文件中添加insert的方法.代码如下 <!-- ...
- 映射文件中增删改查标签中的parameterType和resultType
parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中. resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射 ...
随机推荐
- python 中关于descriptor的一些知识问题
这个问题从早上日常扫segmentfault上问题开始 有个问题是 class C(object): @classmethod def m(): pass m()是类方法,调用代码如下: C.m() ...
- 玩弄 python 正则表达式
这里记录一个我常用的模型,每次久了不使用正则就会忘记. 记得最好玩的一句关于正则表达式的话就是 当你想到一件事情可以用正则表达式解决的时候 现在你就面临了两个问题了. python里面使用了re模块对 ...
- ubuntu python apache2 wsgi django框架
在ubuntu上通过apatch2和wsgi部署django (亲手做过!!!) 一,我的python.django.apatch2版本: python:python -V 2.7.3 django: ...
- python列表和元组操作
列表 列表(list)是python以及其他语言中最常用到的数据结构之一.Python使用中括号[ ]来解析列表.列表是可变的(mutable)—可以改变列表的内容. 定义列表 names = ['m ...
- BZOJ3545&3551[ONTAK2010]Peaks——kruskal重构树+主席树+dfs序+树上倍增
题目描述 在Bytemountains有N座山峰,每座山峰有他的高度h_i.有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只 ...
- MVC WebApi 图片上传和显示
1 MVC中显示 内存流 中的图片.(不是图片文件) 创建一个Index用来显示 Action: public ActionResult Index() { return View(); } csht ...
- python成长之路五-文件操作
1,文件操作 f = open("D:\种子.txt",encoding="utf-8",mode="r") # 打开一个种子.txt文件, ...
- Scout YYF I POJ - 3744(概率dp + 矩阵快速幂)
题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * d ...
- 【HDU5831】Rikka with Parenthesis II(括号)
BUPT2017 wintertraining(16) #4 G HDU - 5831 题意 给定括号序列,问能否交换一对括号使得括号合法. 题解 注意()是No的情况. 任意时刻)不能比(超过2个以 ...
- sklearn 总结
一张思维导图总结一下用到的大体模块: