MybatisUtil

package xx.xx.xx;

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.InputStream;

public class MybatisUtil {
    private static ThreadLocal<SqlSession> tl = new ThreadLocal<SqlSession>();
    private static SqlSessionFactory ssf ;
    static{
        InputStream is = null;
        try {
            is = Resources.getResourceAsStream("mybatis-config.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        ssf = new SqlSessionFactoryBuilder().build(is);
    }

    //获取sqlSession对象
    private static SqlSession openSession() throws IOException {
        SqlSession sqlSession = tl.get();
        if(sqlSession==null){
            sqlSession = ssf.openSession();
            tl.set(sqlSession);
        }
        return sqlSession;
    }

    //获取DAO接口实现类对象
    public static Object getMapper(Class clazz) throws IOException {
        return openSession().getMapper(clazz);
    }

    //关闭资源  查询操作
    public static void close() throws IOException {
        openSession().close();
        tl.remove();
    }

    //提交事务  用于增删改操作
    public static void commit() throws IOException {
        openSession().commit();
        close();
    }

    //回滚事务  用于增删改操作
    public static void rollback() throws IOException {
        openSession().rollback();
        close();
    }
}

上一篇:IO流之FileInputStream


下一篇:Java基础之IO