mybatis单独使用时,使用SqlSession来处理事务,打开会话,事务处理开始,增删改操作时要执行commit操作,事物提交后,关闭会话,事物结束。
@Test
public void insertUserTest() throws Exception {
// 1、读取配置文件
String resource = "SqlMapConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
// 2、根据配置文件创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// 3、SqlSessionFactory创建SqlSession
//如果sqlsessionFactory.opensession(true)参数是布尔值,如果设置为true,就不需要commit提交事务了
SqlSession sqlSession = sqlSessionFactory.openSession();//openSession打开会话,事务处理开始
// 4、SqlSession执行statement,并返回映射结果
//构建user参数,没有赋值的属性采取默认值
User user = new User();
user.setUsername("东哥1");
user.setAddress("清河宝盛西里");
// 第一个参数:statement的id,建议:namespace.statementId(确保唯一)
// 第二个参数:入参的值,它的类型要和映射文件中对应的statement的入参类型一致
sqlSession.insert("insertUser", user);
//切记:增删改操作时,要执行commit操作
sqlSession.commit();
// 5、关闭SqlSession
sqlSession.close();
}