增加

  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. 准确率,精确率,召回率,F-measure 之间的关系

    总结:(图上 R的计算的分母应该是 :40+10 )(笔误) 模型条件放宽,负类被误判为正类的可能性就变大(即FP变大)精确率和准确率会受影响(变小) 模型条件变严格,正类有可能被误判为负类(即FN变 ...

  2. 2-4 Vue中的属性绑定和双向数据绑定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. PHP面向对象技术(全面讲解)

    作者:高洛峰    来源:<PHPer>杂志 1.面向对象的概念      面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机 ...

  4. Objective-C NSObject与运行时系统

    创建: 2018/01/26 完成: 2018/02/02 遗留: TODO  NSObject  运行时系统 程序运行时候起作用的系统? NSObject是运行时系统的接口(API)  属性 只有一 ...

  5. E20180119

    Foundation   n. 基础; 地基; 粉底; 基金(会); hybrid   n. 杂种; 杂交生成的生物体; 混合物; 混合词; adj. 混合的; 杂种的;

  6. Extjs grid禁用头部点击三角下拉菜单

    表格头部的三角在点击的时候禁止出现下拉菜单,给每一列添加属性menuDisabled:true xtype:'grid', enableColumnResize:false, columns:[ {t ...

  7. swoole多进程处理产生的问题

    以前用swoole的时候,没有涉及到数据库连接,碰到问题没有那么多,后来公司业务原生来写swoole多进程,问题出现很多 1.多进程之间会产生进程隔离,global无效,不能共用一个mysql,red ...

  8. HDU 1879(最小生成树)

    #include "iostream" #include "algorithm" #include "cstdio" using names ...

  9. Java编程思想读书笔记_第6章

    如何创建一个包: 比如创建一个包名为com.huawei 则在一个目录下如(d:\java)创建目录com/huawei 然后在huawei目录下创建一个文件Assist.java package c ...

  10. CF864D Make a Permutation!

    思路: 贪心,构造,模拟. 实现: #include <bits/stdc++.h> using namespace std; ], a[], vis[], n; int main() { ...