笔记要点
出错分析与总结

/**测试第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. KNN分类器、最近邻分类、KD树、KNN分类的最佳K值、基于半径的最近邻分类器、KNN多分类、KNN多标签分类、KNN多输出分类、KNN分类的优缺点
  2. MyBatis查询结果resultType返回值类型详细介绍
  3. this.$set 更新整个数组_学点算法(二)——有序数组二分搜索算法
  4. PowerPoint 蜜蜂跳“8”字舞实例
  5. Linux下cacti+syslog-ng+snare
  6. javaweb时间插件
  7. 4600u黑苹果 r5_黑苹果从入门到精通 篇四:Mojave黑苹果主要硬件兼容性总结及笔记本推荐...
  8. magicbook linux系统换w7,荣耀MagicBook笔记本怎么安装win7系统
  9. js获取传统节假日_vue js moment.js 过滤了双休日和法定节假日
  10. 2021年度总结 -- 万粉博主的写作荣誉分享,写博客是一种心灵的修行
  11. 关于sqlserver身份登录失败的解决方法
  12. 开发者百度地图的使用,做一个小demo,ak秘钥,
  13. Android应用数据备份
  14. 列选主元的高斯消去法
  15. 基于java中国象棋游戏
  16. CUDA编程学习3——并行计算初窥CUDA的软硬件架构
  17. Linux 编译C++程序的四种方法
  18. 【强大精美的PS特效滤镜合集】Alien Skin Eye Candy for Mac 7.2.2.20
  19. 本地域名设置和跨域行为
  20. nextjs移动端开发总结

热门文章

  1. sessionStorage与clone方法在项目中的应用
  2. 从图片搜索到人脸识别,CV正在成为“互动营销”领域的【硬核技术】
  3. 字节跳动智能创作实验室-图像团队2022秋招正式批开启
  4. 北航教授李帅:“VR+医疗”仿真系统及关键技术分享
  5. 行人重识别的挑战与最新进展(35页PPT整理)
  6. DivideMix: Salesforce提出使用半监督学习大幅改进含噪声标签的学习
  7. 再谈RetinaNet
  8. CVPR 2019 Oral | 华科开源效果超群的人体姿态迁移算法
  9. 谷歌新开源的MorphNet到底能为我们做什么?
  10. python 字符串操作list【:-1】的几种用法