mybatis3.1-[topic-16-17]-映射文件_增删改查_insert_获取自增主键的值
笔记要点
出错分析与总结
/**测试第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_获取自增主键的值相关推荐
- MyBatis映射文件1(增删改、insert获取自增主键值)
增删改 Mybatis为我们提供了<insert>.<update>.<delete>标签来对应增删改操作 在接口中写增删改的抽象方法 void addEmp(Em ...
- java 怎么获取键的值_在 Java 中如何获取 Map 的所有键和值
在 Java 中可以通过 map.entrySet() 方法获取 Map 的所有键和值. Map map = new HashMap<>(); // Get keys and values ...
- python制作一个密码簿_[python]制作密码薄,完成增删改查和文件存储功能。
题目: 1)用文本编辑器编写一个密码簿文本文件,每一行格式为:姓名,密码 2)编写Python代码,提示:输入文件名,输入文件名后提示:查找,增加,删除,修改,保存 3)选择查找,输入姓名,提示&qu ...
- servlet增删改查实例_SpringMVC4+MyBatis3+SQLServer 2014 整合(包括增删改查分页)
前言 说起整合自然离不开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查. 开发环境 idea2016.SpringMVC4 ...
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示...
Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...
- springboot pom文件添加mysql组件_SpringBoot整合mybatis-plus+druid组件,实现增删改查
前言 本篇文章主要介绍的是SpringBoot整合mybatis-plus,实现增删改查. GitHub源码链接位于文章底部. 建库建表 创建springboot数据库,创建t_user表,字段id主 ...
- 论坛模块_版块管理_增删改查实现上下移动
论坛模块_版块管理1_增删改查 设计实体Forum.java public class Forum {private Long id;private String name;private Strin ...
- 增删改查操作下锁的相关情况_查询时的锁分析
此系列主要分析在增删改查操作下,表是否有索引等情况下,锁的申请使用情况,研究分析并用于语句调优,数据库优化,死锁堵塞分析等:由于时间问题,该篇只分析查询的情况,下篇继续分析 锁的种类 首先,先了解下数 ...
- java部门管理_系统管理模块_部门管理_实现基本的增删改查功能
系统管理模块_部门管理1_实现基本的增删改查功能 先不考虑上级部门 设计实体.表 1.设计实体 Department.java public classDepartment {privateLong ...
最新文章
- KNN分类器、最近邻分类、KD树、KNN分类的最佳K值、基于半径的最近邻分类器、KNN多分类、KNN多标签分类、KNN多输出分类、KNN分类的优缺点
- MyBatis查询结果resultType返回值类型详细介绍
- this.$set 更新整个数组_学点算法(二)——有序数组二分搜索算法
- PowerPoint 蜜蜂跳“8”字舞实例
- Linux下cacti+syslog-ng+snare
- javaweb时间插件
- 4600u黑苹果 r5_黑苹果从入门到精通 篇四:Mojave黑苹果主要硬件兼容性总结及笔记本推荐...
- magicbook linux系统换w7,荣耀MagicBook笔记本怎么安装win7系统
- js获取传统节假日_vue js moment.js 过滤了双休日和法定节假日
- 2021年度总结 -- 万粉博主的写作荣誉分享,写博客是一种心灵的修行
- 关于sqlserver身份登录失败的解决方法
- 开发者百度地图的使用,做一个小demo,ak秘钥,
- Android应用数据备份
- 列选主元的高斯消去法
- 基于java中国象棋游戏
- CUDA编程学习3——并行计算初窥CUDA的软硬件架构
- Linux 编译C++程序的四种方法
- 【强大精美的PS特效滤镜合集】Alien Skin Eye Candy for Mac 7.2.2.20
- 本地域名设置和跨域行为
- nextjs移动端开发总结
热门文章
- sessionStorage与clone方法在项目中的应用
- 从图片搜索到人脸识别,CV正在成为“互动营销”领域的【硬核技术】
- 字节跳动智能创作实验室-图像团队2022秋招正式批开启
- 北航教授李帅:“VR+医疗”仿真系统及关键技术分享
- 行人重识别的挑战与最新进展(35页PPT整理)
- DivideMix: Salesforce提出使用半监督学习大幅改进含噪声标签的学习
- 再谈RetinaNet
- CVPR 2019 Oral | 华科开源效果超群的人体姿态迁移算法
- 谷歌新开源的MorphNet到底能为我们做什么?
- python 字符串操作list【:-1】的几种用法