增加

  1.增删改在接口中的返回值

    Integer、Long、Boolean、void 返回影响多少行 或 true | false

  2.mapper 中 增删改没有返回值 (resultType或resultMap)

  3.mysql支持自增主键,自增主键的值的获取,mybatis利用statement.getGeneratedKey();
  userGeneratedKeys="true" :使用自增主键获取主键的策略
  keyProperty:指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装到JavaBean中哪个属性中

  获取则是通过插入后,在查询一遍插入的对象,就可以拿到主键值
  4.sqlSessionFactory.openSession()需要手动提交事务,或者采用sqlSessionFactory.openSession(true)

public interface EmployeeMapper {

    Integer addEmp(Employee employee);

}
    <!--
mysql支持自增主键,自增主键的值的获取,mybatis利用statement.getGeneratedKey();
userGeneratedKeys="true" :使用自增主键获取主键的策略
keyProperty:指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装到JavaBean中哪个属性中
-->
<insert id="addEmp" useGeneratedKeys="true" keyProperty="id">
INSERT INTO tbl_employee(last_name, email, gender)
VALUES (#{name}, #{email}, #{gender})
</insert>
    @Test
public void addEmp() throws IOException {
//读取配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//获取sqlSession实例,能直接执行已经映射的sql语句
     //不会自动提交,除非在openSession(true)
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行查询方法
try {
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Employee employee = new Employee(null,"麦克雷",'1',"mapleins@qq.com");
//i判断是否插入成功
Integer i = mapper.addEmp(employee);
System.out.println(i);
//可以获取插入后的主键值
System.out.println(employee.getId());
sqlSession.commit();
}finally {
//关闭sqlSession
sqlSession.close();
}
}

删除和修改

public interface EmployeeMapper {

    Long updateEmp(Employee employee);

    Boolean deleteEmpById(Integer id);

}
    <update id="updateEmp">
UPDATE tbl_employee
SET last_name=#{name},
email=#{email},
gender=#{gender}
WHERE id = #{id}
</update> <delete id="deleteEmpById">
delete from tbl_employee where id = #{id}
</delete>
    @Test
public void updateEmp() throws IOException {
//读取配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//获取sqlSession实例,能直接执行已经映射的sql语句
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行查询方法
try {
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Employee employee = new Employee(17,"天使",'0',"mapleins@qq.com");
Long l = mapper.updateEmp(employee);
System.out.println(l);
sqlSession.commit();
}finally {
//关闭sqlSession
sqlSession.close();
}
} @Test
public void deleteEmpById() throws IOException {
//读取配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//创建sqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//获取sqlSession实例,能直接执行已经映射的sql语句
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行查询方法
try {
EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
Boolean b = mapper.deleteEmpById(17);
System.out.println(b);
sqlSession.commit();
}finally {
//关闭sqlSession
sqlSession.close();
}
}

<MyBatis>入门三 sqlMapper文件的更多相关文章

  1. python入门三:文件操作

    一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 f = open("xxx") # 打开文件并获取文件对象 f.xxx # 对文件进行某些操作 ...

  2. Mybatis入门三

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: <?xml version="1 ...

  3. mybatis入门(三):mybatis的基础特性

    mybatis的知识点: 1.mybatis和hibernate本质区别和应用场景 hibernate:是一个标准的ORM框架(Ojbect relation mapper对象关系映射).入门门槛较高 ...

  4. mybatis 学习三 关键文件解析

    1:  mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...

  5. mybatis入门系列三之类型转换器

    mybatis入门系列三之类型转换器 类型转换器介绍 mybatis作为一个ORM框架,要求java中的对象与数据库中的表记录应该对应 因此java类名-数据库表名,java类属性名-数据库表字段名, ...

  6. Androlid入门之文件系统操作(三)文件读写

         import java.io.*; import android.app.Activity; import android.os.Bundle; import android.view.Vi ...

  7. MyBatis入门学习(三)

    在实际开发中,我们希望文件配置是分类配置存放,需要的时候引入即可.如果多文件的配置混合配置使用,那么对项目的后期维护将增加难度. 一.对于连接数据库的配置单独放在一个properties文件中 1.对 ...

  8. QT从入门到入土(三)——文件的读写操作

     引言 文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能. Qt 提供了两种读写纯文本文件的基本方法: 用 QFi ...

  9. Mybatis系列(一):Mybatis入门

    一.Mybatis是什么 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改 ...

随机推荐

  1. go8---函数function

    package main /* 函数function Go 函数 不支持 嵌套.重载和默认参数. 但支持以下特性: 无需声明原型(C语言在使用函数之前需要声明函数的原型).不定长度变参.多返回值.命名 ...

  2. 【NOIP 2016】初赛-完善程序 & 参考答案

    参考答案 感觉这两题目都挺好的~~ T1 交朋友 简单描述:有n个人依次进入教室,每个人进入会找一个身高绝对值相差最小的人交朋友(相同时更想和高的交朋友),求每个人交的朋友. Solution: So ...

  3. 蓝书2.3 Trie字典树

    T1 IMMEDIATE DECODABILITY poj 1056 题目大意: 一些数字串 求是否存在一个串是另一个串的前缀 思路: 对于所有串经过的点权+1 如果一个点的end被访问过或经过一个被 ...

  4. BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数

    BZOJ_4802_欧拉函数_MR+pollard rho+欧拉函数 Description 已知N,求phi(N) Input 正整数N.N<=10^18 Output 输出phi(N) Sa ...

  5. IOS各种调试

    IOS各种调试技巧豪华套餐   目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印 ...

  6. 12. Ext.Ajax 对ajax的支持

    转自:http://www.cnblogs.com/lipan/archive/2011/12/09/2272793.html 本篇主要介绍一下ExtJs常用的几个对JS语法的扩展支持,包括Ajax封 ...

  7. E20171230-hm

    refine   vt. 提炼; 改善; 使高雅; revert  vi. 恢复; 重提; 回到…上; <律>归还;             vt. 使恢复原状;            n ...

  8. 手机访问PC网站自动跳转到手机网站代码

    方法一: <script type="text/javascript"> try { var urlhash = window.location.hash; if (! ...

  9. 栗染-Not enough physical memory is available to power on this virtual machine with its configured settings.

    这是在打开虚拟机的时候报的错 解决办法:打开虚拟机的时候选择以管理员身份运行()目测可以 原文参考来自:http://blog.csdn.net/qq_35757415/article/details ...

  10. noip2002矩阵覆盖(搜索)

    矩阵覆盖 题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见 ...