Mybatis插入操作易错点

如果插入的操作返回成功,但是数据库没有数据,一般情况下是因为事务。

下面我们来大概分析下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

  1. SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

  2. SqlSession session = sqlSessionFactory.openSession();

  3. EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);

  4. int index = mapper.insertEmployee(new Employee(0, "小七", 0, "xiaoqi@qq.com"));

  5. session.commit();

注意:MyBatis中每张表都要有一个主键

上一篇:MyBatis的生命周期


下一篇:面试官:你分析过mybatis工作原理吗?