• 遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?


    遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?

    可能的原因有几种:

    1. 没有提交事务:在使用 MyBatis 进行数据库操作时,需要手动提交事务。你可以在插入数据完成后调用 commit() 方法来提交事务。如果没有提交事务,数据库中的数据不会被实际保存。

    2. 配置问题:请确保你的数据库连接配置正确,并且连接到了正确的数据库。可以检查配置文件中的数据库URL、用户名和密码等信息是否正确。

    3. SQL语句错误:请检查你的插入语句是否正确。可能存在语法错误或者数据类型不匹配等问题导致插入失败。可以尝试手动执行相同的 SQL 语句来验证。

    4. 数据库自动提交设置:有些数据库默认情况下是自动提交的,即每次执行 SQL 语句后会自动将修改保存到数据库。如果你的数据库是自动提交模式,可能是其他代码修改了数据后没有及时提交导致看不到变化。

    5. 数据库事务隔离级别:如果你在启用了事务的情况下进行插入操作,可能是由于事务隔离级别导致的。可以尝试将事务隔离级别设置为 READ_COMMITTED,或者禁用事务来验证是否能够正常插入数据。

    希望以上提示能够帮助你找到问题所在并解决。如果问题仍然存在,请提供更多细节和代码,以便更好地帮助你解决。

    第一次代码:

    1. public class InsertDataTest {
    2. public static void main(String[] args) {
    3. Emp emp =new Emp("102","王二浪","男",29,"23232323232323","武当山","2000-10-20");
    4. MyBatisUtil util = new MyBatisUtil();
    5. SqlSession sqlSession = util.getSqlSession();
    6. int insertData = sqlSession.insert("insertData", emp);
    7. System.out.println(insertData);
    8. }
    9. }

    结果:

    控制台结果输出的是没有问题的,趋势输出了,达到了预期效果,但是回到数据库中但是数据没有提交上去,最后发现我们在刚开始配置事务管理器时配置的是如下图,所以是开启了事务的,我们没有提交所以事务不会被提交;

    1. <transactionManager type="JDBC"/>

    正确代码:

    1. public class InsertDataTest {
    2. public static void main(String[] args) {
    3. Emp emp =new Emp("102","王二浪","男",29,"23232323232323","武当山","2000-10-20");
    4. MyBatisUtil util = new MyBatisUtil();
    5. SqlSession sqlSession = util.getSqlSession();
    6. int insertData = sqlSession.insert("insertData", emp);
    7. System.out.println(insertData);
    8. if (sqlSession != null) {
    9. sqlSession.commit();
    10. sqlSession.close();
    11. }
    12. }
    13. }

  • 相关阅读:
    【seo规则优化-语义化标签-set用法】
    vue3项目中mitt的使用
    Photoshop插件-动作相关概念-ActionList-ActionDescriptor-ActionList-动作执行加载调用删除-PS插件开发
    如何在外网访问内网服务器数据库
    商务社交中为何电子名片这么火?都在使用哪一款免费的电子名片?
    【0基础学Java第七课】-- 类和对象02
    空间滤波-反谐波平均滤波器
    js for循环案例
    C++程序设计
    二、演练领域驱动的设计过程
  • 原文地址:https://blog.csdn.net/m0_64231944/article/details/132844478