老师 mybatisutils初始化错误
@Test
public void testDelete() throws Exception {
SqlSession session=null;
try{
session=MyBatisUtils.openSession();
int num= session.delete("goods.delete",739);
session.commit();//提交
}catch (Exception e){
if(session!=null){
session.rollback();//回滚
}
}finally {
MyBatisUtils.closeSession(session);
}
}
}
=============================
package com.imooc.mybatis.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
/**
* mybatisutils工具类创建全局唯一的SQL sessionFactory对象
* @author TheArbiter47
* @date 2020/4/18-20:35
*/
public class MyBatisUtils {
//利用static静态属于类不属于对象 且全局唯一
private static SqlSessionFactory sqlSessionFactory=null;
//利用静态代码块实例化sqlsessionfactory
static {
Reader reader= null;
try {
reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
//初始化错误时 抛出exceptioninitializererror通知调用者
e.printStackTrace();
throw new ExceptionInInitializerError(e);
}
}
/**
* open session创建一个新的SQL session对象
* @return SQL session对象
*/
public static SqlSession openSession(){
//默认SQL session自动提交事务数据commit
//设置false代表关闭自动提交 改为手动提交事务
return sqlSessionFactory.openSession(false);
}
/**
* 释放一个有效的SQL session对象
* @param session 准备释放sqlsession对象
*/
public static void closeSession(SqlSession session){
if(session!=null){
session.close();
}
}
}
正在回答 回答被采纳积分+1
老师看一看
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星