MyBatis插入数据控制台插入成功,数据库无插入数据

问题描述:  在测试mybatis插入数据时,测试类中显示插入信息成功,但是数据库中一直没有数据更新 问题原因: mybatis在测试时需要获取数据库操作

问题描述: 

在测试mybatis插入数据时,测试类中显示插入信息成功,但是数据库中一直没有数据更新

问题原因:

mybatis在测试时需要获取数据库操作对象SqlSession,而SqlSession是由SqlSessionFactory 去创建的,默认的 openSession() 方法没有参数,没有参数时事务不会自动提交,当把openSession()方法的参数值设置成true时,可以开启事务自动提交功能。

解决办法:

以下是全部代码:

测试类:

        //添加员工信息int i = addEmpTest();if(i>0){System.out.println("添加"+i+"条员工信息");}else{System.out.println("添加失败!");}
    //添加员工信息public static int addEmpTest() throws Exception {//获取mapperEmpMapper mapper = getEmpMapper();//构建emp实体类Emp emp = new Emp();emp.setEname("jack");emp.setPwd("1234555");emp.setSalary(8888);//添加员工int i = mapper.addEmp(emp);return i;}

 

    public static EmpMapper getEmpMapper() throws Exception {//1.读取mybatis配置文件Reader reader = Resources.getResourceAsReader("mybatis-config.xml");//2.获取SqlSessionFactory工厂SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory = ssfb.build(reader);SqlSession sqlSession = sqlSessionFactory.openSession();//利用sqlsession的getMapper生成dao层接口的动态代理实现类EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);//返回mapperreturn  mapper;}

 接口和映射文件

     //添加一条员工信息int addEmp(Emp emp);

 



 insert into emp (ename,password,salary) values (#{ename},#{pwd},#{salary})

MyBatis配置文件