笔记要点
出错分析与总结

/**测试第16章的增,删,改 的内容*  错误1: <insert id="addEmp" parameterType="com.bean.Employee">  ,注意选取数据类型是parameterType,不是Map*  错误2: 按顺序查找全部数据,但是delete清楚数据后, id自增变量不是从零开始的;所以自己的while循环不好!*  ---------*  1. mybatis 支持允许增删改查,直接定义如下类型: Integer/long/boolean类型*  2. 手动提交即可, openSession.commit();*  3.*/

工程组织

EmployeeMapper.xml   (加入 增,删,改 的sql映射语句的内容)
<?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.dao.EmployeeMapper"><!--namespace: 名称空间id: 唯一标识resultType:返回值类型#{id} : 从传递过来的参数中取出id值public Employee getEmpById(Integer id);--><select id="getEmpById" resultType="com.bean.Employee" databaseId="mysql">select * from tbl_employee where id = #{id}</select><!--public void addEmp(Employee employee);parameterType : 参数类型,可以省略;mysql支持自增主键,自增主键的获取:mybatis也是利用statement.getGeneratedKeys()调用方法: 在标签中添加即可: useGeneratedKeys="true";--><insert id="addEmp" parameterType="com.bean.Employee"useGeneratedKeys="true" keyProperty="id">insert into tbl_employee(last_name,email,gender)values (#{lastName},#{email},#{gender})</insert><!--public void updateEmp(Employee employee);--><update id="updateEmp" >update tbl_employeeset last_name=#{lastName},email=#{email},gender=#{gender}where id=#{id}</update><!--public void deleteEmpById(Integer id);--><delete id="deleteEmpById">delete from tbl_employee where id=#{id}</delete>
</mapper>

EmployeeMapper.java   [com.dao 下的]

package com.dao;
import com.bean.*;//接口式编程! namespace: 名称空间,指定为接口名字;
public interface EmployeeMapper {public Employee getEmpById(Integer id);//添加返回值类型,表示mybatis的会话状态是true或者falsepublic boolean addEmp(Employee employee);public boolean updateEmp(Employee employee);public boolean deleteEmpById(Integer id);
}

class test_tp16  测试类  [com.test下的]

package com.test;
import com.bean.Employee;
import com.dao.EmployeeMapper;
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 org.junit.Test;import java.io.IOException;
import java.io.InputStream;/**测试第16章的增,删,改 的内容*  错误1: <insert id="addEmp" parameterType="com.bean.Employee">  ,注意选取数据类型是parameterType,不是Map*  错误2: 按顺序查找全部数据,但是delete清楚数据后, id自增变量不是从零开始的;所以自己的while循环不好!*  ---------*  1. mybatis 支持允许增删改查,直接定义如下类型: Integer/long/boolean类型*  2. 手动提交即可, openSession.commit();*  3.*/
public class test_tp16 {public SqlSessionFactory getSqlSessionFactory() throws IOException {String resource = "mybatis-config.xml";InputStream inputStream=Resources.getResourceAsStream(resource);return new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void test03() throws IOException{//默认是不自动提交数据的,需要我们自己手动提交SqlSession openSession = getSqlSessionFactory().openSession();try {EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);//1-1 测试:增加一条记录//  Employee employee1 = new Employee(null, "jerry", "jerry@163.com", "0");//     mapper.addEmp(employee1);//1-1-1 测试自增:增加一条记录Employee employee1 = new Employee(null, "葫芦娃", "葫芦娃@163.com", "0");mapper.addEmp(employee1);//1-2 测试; 更新一号的名字为 jerry,性别为1
//            Employee employee = new Employee(1, "jerry", "jerry@163.com", "1");
//            mapper.updateEmp(employee);//1-3 测试删除,删除第二号的员工//   boolean b= mapper.deleteEmpById(2);//   System.out.println(b);//1-4 测试; 按顺序查找全部数据,
            Employee employee;int i=1;while ((employee = mapper.getEmpById(i))!=null){i++;System.out.println(employee);}//2.手动提交
            openSession.commit();} finally {openSession.close();}}
}

转载于:https://www.cnblogs.com/zhazhaacmer/p/10033665.html

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

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

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

  2. java 怎么获取键的值_在 Java 中如何获取 Map 的所有键和值

    在 Java 中可以通过 map.entrySet() 方法获取 Map 的所有键和值. Map map = new HashMap<>(); // Get keys and values ...

  3. python制作一个密码簿_[python]制作密码薄,完成增删改查和文件存储功能。

    题目: 1)用文本编辑器编写一个密码簿文本文件,每一行格式为:姓名,密码 2)编写Python代码,提示:输入文件名,输入文件名后提示:查找,增加,删除,修改,保存 3)选择查找,输入姓名,提示&qu ...

  4. servlet增删改查实例_SpringMVC4+MyBatis3+SQLServer 2014 整合(包括增删改查分页)

    前言 说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查. 开发环境 idea2016.SpringMVC4 ...

  5. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示...

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  6. springboot pom文件添加mysql组件_SpringBoot整合mybatis-plus+druid组件,实现增删改查

    前言 本篇文章主要介绍的是SpringBoot整合mybatis-plus,实现增删改查. GitHub源码链接位于文章底部. 建库建表 创建springboot数据库,创建t_user表,字段id主 ...

  7. 论坛模块_版块管理_增删改查实现上下移动

    论坛模块_版块管理1_增删改查 设计实体Forum.java public class Forum {private Long id;private String name;private Strin ...

  8. 增删改查操作下锁的相关情况_查询时的锁分析

    此系列主要分析在增删改查操作下,表是否有索引等情况下,锁的申请使用情况,研究分析并用于语句调优,数据库优化,死锁堵塞分析等:由于时间问题,该篇只分析查询的情况,下篇继续分析 锁的种类 首先,先了解下数 ...

  9. java部门管理_系统管理模块_部门管理_实现基本的增删改查功能

    系统管理模块_部门管理1_实现基本的增删改查功能 先不考虑上级部门 设计实体.表 1.设计实体 Department.java public classDepartment {privateLong ...

最新文章

  1. JAVA 实现扫码二维码登录
  2. 【C#】解析C#中JSON.NET的使用
  3. 视觉SLAM——ORB-SLAM2运行tum数据集,kitti数据集,euroc数据集
  4. [LeetCode]119.Pascal's Triangle II
  5. Python包管理工具小结
  6. Linux基础-06-vi编辑器
  7. oracle10g em服务没有,如何配置和重建Oracle 10G的em服务 dbcontrol
  8. java 可重入锁 clh_Java并发编程系列-(4) 显式锁与AQS
  9. RabbitMQ之Topic交换器模式开发
  10. 【收藏】DIABLO 2 CD KEY
  11. bios error 装系统acpi_win10系统升级后开机提示acpi bios error的解决方法
  12. 斯坦福机器学习教程学习笔记之1
  13. excel做ns流程图_NS流程图是什么图?用这款软件轻松画NS流程图
  14. eclipse SWT 中实现工程图标最小化到托盘,并只能右键托盘图标选择关闭
  15. Django项目部署至华为云服务器
  16. 二手华为p40手机现在多少钱
  17. 对 Linux 初级、中级、高级用户非常有用的 60 个命令(转)
  18. Unity网格系统(1)网格生成
  19. Java的基础语法(二)
  20. 进入html+css世界的正确姿势

热门文章

  1. Linux下改动Oracle数据库字符集命令
  2. IOS数据存储 —— 1 沙盒(数据存储目录)
  3. erlang lists模块函数使用大全
  4. STM32学习笔记之一(初窥STM32)
  5. PHPExcel+phalcon+yii批量导入
  6. 20140418--第1讲.开山篇
  7. C# SendInput 实现模拟鼠标操作
  8. 近期机器学习竞赛汇总~总奖池超三百万人民币!
  9. 收藏 | 评述深度学习的发展
  10. 数据结构(三)插入排序