郑州网站建设时一定需要注意的六点,哈尔滨市营商环境建设监督局网站,艺术设计专业,潍坊知名网站建设哪家便宜遇见问题#xff1a;使用mybaties向数据库中插入数据#xff0c;idea显示插入成功#xff0c;但是数据库中并没有数据变化?
可能的原因有几种#xff1a; 没有提交事务#xff1a;在使用 MyBatis 进行数据库操作时#xff0c;需要手动提交事务。你可以在插入数据完成后…遇见问题使用mybaties向数据库中插入数据idea显示插入成功但是数据库中并没有数据变化?
可能的原因有几种 没有提交事务在使用 MyBatis 进行数据库操作时需要手动提交事务。你可以在插入数据完成后调用 commit() 方法来提交事务。如果没有提交事务数据库中的数据不会被实际保存。 配置问题请确保你的数据库连接配置正确并且连接到了正确的数据库。可以检查配置文件中的数据库URL、用户名和密码等信息是否正确。 SQL语句错误请检查你的插入语句是否正确。可能存在语法错误或者数据类型不匹配等问题导致插入失败。可以尝试手动执行相同的 SQL 语句来验证。 数据库自动提交设置有些数据库默认情况下是自动提交的即每次执行 SQL 语句后会自动将修改保存到数据库。如果你的数据库是自动提交模式可能是其他代码修改了数据后没有及时提交导致看不到变化。 数据库事务隔离级别如果你在启用了事务的情况下进行插入操作可能是由于事务隔离级别导致的。可以尝试将事务隔离级别设置为 READ_COMMITTED或者禁用事务来验证是否能够正常插入数据。
希望以上提示能够帮助你找到问题所在并解决。如果问题仍然存在请提供更多细节和代码以便更好地帮助你解决。
第一次代码
public class InsertDataTest {public static void main(String[] args) {Emp emp new Emp(102,王二浪,男,29,23232323232323,武当山,2000-10-20);MyBatisUtil util new MyBatisUtil();SqlSession sqlSession util.getSqlSession();int insertData sqlSession.insert(insertData, emp);System.out.println(insertData);}
}
结果
控制台结果输出的是没有问题的趋势输出了达到了预期效果但是回到数据库中但是数据没有提交上去最后发现我们在刚开始配置事务管理器时配置的是如下图所以是开启了事务的我们没有提交所以事务不会被提交 !--transactionManager 事务管理器type的值有JDBC和MANAGEDJDBC – 这个配置直接使用了 JDBC 的提交和回滚设施它依赖从数据源获得的连接来管理事务作用域也就是给我们来手动管理事务的提交。--transactionManager typeJDBC/
正确代码
public class InsertDataTest {public static void main(String[] args) {Emp emp new Emp(102,王二浪,男,29,23232323232323,武当山,2000-10-20);MyBatisUtil util new MyBatisUtil();SqlSession sqlSession util.getSqlSession();int insertData sqlSession.insert(insertData, emp);System.out.println(insertData);if (sqlSession ! null) {sqlSession.commit();sqlSession.close();}}
}