zoukankan      html  css  js  c++  java
  • Mybatis--使用set修改内容成功,但没有修改数据库的原因

    在第一次学习mybatis的时候,使用set进行修改表中内容,修改成功,查询也能查询到修改后的内容,但所数据库数据却没有被修改

    Teacher teacher = new Teacher();
            teacher.setTid(1);
            teacher.setTname("ccc");
            int i = classDao.updateTeacher(teacher);
            System.out.println("修改了"+i+"条记录");
            List<Teacher> teachers = classDao.selectTeacher();
            System.out.println(teachers);

    控制台显示结果执行成功,且查询teacher表的数据结果正确。

    但是进入数据库表查看时发现数据库中的数据并没有被修改。

    这个原因是因为mybatis默认不是自动提交事务的, 所以其实没有修改数据库,

    刚刚新增完后立即返回的结果,是从mybatis为了提高性能设置的缓存里读取的,不是从数据库读取的

    解决的办法:一是在openSession() 的括号里写true, 设定自动提交事务,

            二是在代码中加入session.commit()  手动提交事务

     1、设定自动提交openSession( autoCommit=true)

     2、手动提交事务session.commit()

  • 相关阅读:
    Hibernate关联映射
    mysql 外键约束
    巩固JavaSE基础--IDEA完成实战项目
    PHP--选择排序
    PHP--冒泡排序
    vscode调试单个PHP脚本文件
    Vscode下调试基于Homestead环境的Laravel框架
    Python Web开发
    Python之UDP编程
    Python之TCP编程
  • 原文地址:https://www.cnblogs.com/axinga/p/14568945.html
Copyright © 2011-2022 走看看