没有提交事务:在使用 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"/>
- 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();
- }
- }
- }