继上一篇文章的开发环境操作
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的增删改操作及需要注意的问题相关推荐

  1. MyBatis中增删改操作

    Mapper层代码 <!-- 增加操作 public int insert (Flower fl) --> <insert id="insert"> ins ...

  2. MyBatis的增删改查操作

    MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...

  3. (Mybatis)增删改查实现

    文章目录 namespace 增删改查 1. Select 2. Insert 3. Update 4. Delete 万能Map 模糊查询 namespace namespace一定要与mapper ...

  4. 3. mysql的注解驱动的三种方式_上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。...

    1.引入依赖 org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot- ...

  5. MyBatis进行增删改查

    文章目录 一.查询 1.增加映射语句 2.添加按姓名查询用户 二.插入表记录 1.UserMapper.xml里增加映射语句 - insert 2. UserMapper接口里增加insert()方法 ...

  6. Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建

    Spring+SpringMVC+Mybatis实现增删改查--(五)SSM修改员工页面搭建 修改员工: 1.在index.jsp页面点击"编辑"弹出编辑对话框 2.去数据库查询部 ...

  7. MyBatis-Plus(八)Mapper的CRUD接口5:增删改操作

    Mapper的CRUD接口5:增删改操作 1.新增数据 insert 方法可以将一个实体对象插入到对应的数据表中: @RestController public class HelloControll ...

  8. dom对html增删改操作,6.DOM对HTML元素的增删改操作

    节点的增删改操作 function createNode(){ //创建一个li元素 var li = document.createElement("li"); li.inner ...

  9. MySQL——数据库的增删改操作

    数据库的增删改操作 数据库的增操作 数据库的增操作主要涉及数据库的增加.数据表的增加.表记录增加以及表字段增加等.数据库的增加非常简单,就是新创建一个数据库:表记录的增加指的就是新增表的数据行,可以是 ...

最新文章

  1. 我发现一条惊人规律,年后跳槽BATJ,都是这种人....
  2. c语言结构体输入身高体重,c++:输入n名学生的身高体重,按身高排序输出并计算平均体重和身高...
  3. 税收征收管理法律制度
  4. Windows中启动Redis走配置文件的bat脚本
  5. 山东大学2017-2018年校历
  6. 大专计算机应用基础课件,11春大专《计算机应用基础》练习课件.doc
  7. 北上广等一线城市 IT 岗位已接近饱和?
  8. 计算机显卡故障与排除,电脑显卡常见故障排除方法
  9. python免费课件-python入门ppt下载
  10. vbscript运行环境linux,VBScript 是什么?
  11. 华为C语言的编程规范
  12. 打造铜墙铁壁 DDoS攻击全面解析
  13. dell初始linux密码,常用设备管理口默认用户名密码汇总
  14. 人工智能在医药行业的应用
  15. 微软2019校招面试题
  16. 使用pyinstall将python+qt的py文件打包为exe
  17. pusher之JS文档阅读
  18. Android解锁fido,新版Android已支持FIDO2标准 免密登录应用或网站
  19. highcharts环形图
  20. 决定微型计算机最主要的部件是,【单选题】决定微型计算机性能的最主要部件是( )。A. 内存 B. 硬盘 C. CPU D. 显示器...

热门文章

  1. c语言编写队列元素逆置,数据结构与算法实验—利用栈逆置队列元素.doc
  2. SAP Commerce Cloud portal 的 deployment
  3. SAP Freestyle UI5 和 SAP Fiori Elements 应用的区别
  4. 具有SmartFilterBar 的 SAP Fiori Elements 自动触发的搜索操作
  5. Angular ng-template元素的学习笔记
  6. 使用扩展技术对SAP Fiori应用进行端到端的增强,一个实际案例介绍
  7. JSP里的System.out.println
  8. SAP Fiori Elements - how drop down list with description is correctly rendered
  9. SAP Hybris Commerce里类似ABAP里的透明表设计
  10. Sales area data model research in QDD