如果插入的操作返回成功,但是数据库没有数据,一般情况下是因为事务。
下面我们来大概分析下MyBatis。
在MyBatis的配置文件中:
[html] view plain copy
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
使用了JDBC事务管理器,并交给了MyBatis进行处理,JDBC事务管理器默认情况下是进行自动提交的,但是交给MyBatis处理之后,就变成了手动提交,所以在MyBatis中,进行CRUD操作的时候,只有查找是不需要自己进行提交的,其他三种操作都需要进行提交。
[java] view plain copy
-
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
-
SqlSession session = sqlSessionFactory.openSession();
-
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
-
int index = mapper.insertEmployee(new Employee(0, "小七", 0, "xiaoqi@qq.com"));
- session.commit();
注意:MyBatis中每张表都要有一个主键