mybatis的增删改操作及需要注意的问题
继上一篇文章的开发环境操作
https://blog.csdn.net/qq_43941925/article/details/114491876
Mybatis的插入操作
在UserMapper.xml文件中添加插入操作
<?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="userMapper"><!--插入操作--><insert id="save" parameterType="com.itheima.domain.User">insert into user values(#{id},#{username},#{password})</insert></mapper>
在测试类中测试插入操作:
public void test2() throws IOException {//模拟user对象User user = new User();user.setUsername("tom");user.setPassword("abc");InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = sqlSessionFactory.openSession();//mybatis默认事务不提交sqlSession.insert("userMapper.save",user);sqlSession.close();}
运行测试类后查询数据库,发现插入操作失败,因为mybatis默认不提交事务,所以执行更新操作的时候需要手动提交事务,添加以下代码在倒数第二行。
sqlSession.commit();
再次运行代码发现插入数据的id是5,也就是虽然我们前几次提交失败,但是id也是在自增的。
插入数据操作需要注意的问题
插入语句使用insert标签
在映射文件中使用parameterType属性指定要插入的数据类型
Sql语句中使用#{实体属性名}方式引用实体中的属性值
插入操作使用的API是sqlSession.insert(“命名空间.id”,实体对象);
插入操作涉及数据库数据变化,所以要使用sqlSession对象显示的提交事务,即sqlSession.commit()
Mybatis的修改操作
在UserMapper.xml中添加修改操作:
<?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="userMapper"><update id="update" parameterType="com.itheima.domain.User">update user set username=#{username},password=#{password} where id=#{id}</update>
</mapper>
添加测试方法测试:
@Testpublic void test3() throws IOException {//模拟user对象User user = new User();user.setId(5);user.setUsername("xxx");user.setPassword("1234");InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.insert("userMapper.update",user);sqlSession.commit();sqlSession.close();}
结果修改成功:
修改数据操作需要注意的问题
修改语句使用update标签
修改操作使用的API是sqlSession.update(“命名空间.id”,实体对象);
Mybatis的删除操作
在UserMapper.xml中添加删除操作:
<?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="userMapper"><!--删除操作--><delete id="delete" parameterType="java.lang.Integer">delete from user where id=#{id}</delete>
</mapper>
编写测试方法:
@Testpublic void test4() throws IOException {InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.delete("userMapper.delete",2);sqlSession.commit();sqlSession.close();}
删除成功:
删除数据操作需要注意的问题
- 删除语句使用delete标签
- Sql语句中使用#{任意字符串}方式引用传递的单个参数
- 删除操作使用的API是sqlSession.delete(“命名空间.id”,Object);
增删改查映射配置与API:
查询数据: List<User> userList = sqlSession.selectList("userMapper.findAll");<select id="findAll" resultType="com.itheima.domain.User">select * from User</select>添加数据: sqlSession.insert("userMapper.add", user);<insert id="add" parameterType="com.itheima.domain.User">insert into user values(#{id},#{username},#{password})</insert>
修改数据: sqlSession.update("userMapper.update", user);<update id="update" parameterType="com.itheima.domain.User">update user set username=#{username},password=#{password} where id=#{id}</update>删除数据:sqlSession.delete("userMapper.delete",3);<delete id="delete" parameterType="java.lang.Integer">delete from user where id=#{id}</delete>
mybatis的增删改操作及需要注意的问题相关推荐
- MyBatis中增删改操作
Mapper层代码 <!-- 增加操作 public int insert (Flower fl) --> <insert id="insert"> ins ...
- MyBatis的增删改查操作
MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...
- (Mybatis)增删改查实现
文章目录 namespace 增删改查 1. Select 2. Insert 3. Update 4. Delete 万能Map 模糊查询 namespace namespace一定要与mapper ...
- 3. mysql的注解驱动的三种方式_上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。...
1.引入依赖 org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot- ...
- MyBatis进行增删改查
文章目录 一.查询 1.增加映射语句 2.添加按姓名查询用户 二.插入表记录 1.UserMapper.xml里增加映射语句 - insert 2. UserMapper接口里增加insert()方法 ...
- Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建
Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建 修改员工: 1.在index.jsp页面点击"编辑"弹出编辑对话框 2.去数据库查询部 ...
- MyBatis-Plus(八)Mapper的CRUD接口5:增删改操作
Mapper的CRUD接口5:增删改操作 1.新增数据 insert 方法可以将一个实体对象插入到对应的数据表中: @RestController public class HelloControll ...
- dom对html增删改操作,6.DOM对HTML元素的增删改操作
节点的增删改操作 function createNode(){ //创建一个li元素 var li = document.createElement("li"); li.inner ...
- MySQL——数据库的增删改操作
数据库的增删改操作 数据库的增操作 数据库的增操作主要涉及数据库的增加.数据表的增加.表记录增加以及表字段增加等.数据库的增加非常简单,就是新创建一个数据库:表记录的增加指的就是新增表的数据行,可以是 ...
最新文章
- 我发现一条惊人规律,年后跳槽BATJ,都是这种人....
- c语言结构体输入身高体重,c++:输入n名学生的身高体重,按身高排序输出并计算平均体重和身高...
- 税收征收管理法律制度
- Windows中启动Redis走配置文件的bat脚本
- 山东大学2017-2018年校历
- 大专计算机应用基础课件,11春大专《计算机应用基础》练习课件.doc
- 北上广等一线城市 IT 岗位已接近饱和?
- 计算机显卡故障与排除,电脑显卡常见故障排除方法
- python免费课件-python入门ppt下载
- vbscript运行环境linux,VBScript 是什么?
- 华为C语言的编程规范
- 打造铜墙铁壁 DDoS攻击全面解析
- dell初始linux密码,常用设备管理口默认用户名密码汇总
- 人工智能在医药行业的应用
- 微软2019校招面试题
- 使用pyinstall将python+qt的py文件打包为exe
- pusher之JS文档阅读
- Android解锁fido,新版Android已支持FIDO2标准 免密登录应用或网站
- highcharts环形图
- 决定微型计算机最主要的部件是,【单选题】决定微型计算机性能的最主要部件是( )。A. 内存 B. 硬盘 C. CPU D. 显示器...
热门文章
- c语言编写队列元素逆置,数据结构与算法实验—利用栈逆置队列元素.doc
- SAP Commerce Cloud portal 的 deployment
- SAP Freestyle UI5 和 SAP Fiori Elements 应用的区别
- 具有SmartFilterBar 的 SAP Fiori Elements 自动触发的搜索操作
- Angular ng-template元素的学习笔记
- 使用扩展技术对SAP Fiori应用进行端到端的增强,一个实际案例介绍
- JSP里的System.out.println
- SAP Fiori Elements - how drop down list with description is correctly rendered
- SAP Hybris Commerce里类似ABAP里的透明表设计
- Sales area data model research in QDD