03-MyBatisUtils MyBatisUtils1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071import 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 MyBatisUtils { //获得SqlSession工厂 private static SqlSessionFactory sqlSessionFactory; //创建ThreadLocal绑定当前线程中的SqlSession对象 private static final ThreadLocal<SqlSession> SQL_SESSION_THREAD_LOCAL = new ThreadLocal<>(); static { try { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } /** * 获取 SqlSession 连接对象(线程唯一) * @return SqlSession */ public static SqlSession getSqlSession() { SqlSession sqlSession = SQL_SESSION_THREAD_LOCAL.get(); if (null == sqlSession) { sqlSession = sqlSessionFactory.openSession(); SQL_SESSION_THREAD_LOCAL.set(sqlSession); } return sqlSession; } /** * 释放 SqlSession 对象,移除线程绑定 */ public static void close() { getSqlSession().close(); SQL_SESSION_THREAD_LOCAL.remove(); } /** * 事务处理:提交 */ public static void commit() { getSqlSession().commit(); close(); } /** * 事务处理:回滚 */ public static void rollback() { getSqlSession().rollback(); close(); } /** * 获得接口实现类对象 * @param t 接口类对象 * @param <T> 接口类泛型 * @return 返回 t 的实现类实例 */ public static <T> T getMapper(Class<T> t) { return getSqlSession().getMapper(t); }} 21_代码片段 > 01_工具类 #工具类 03-MyBatisUtils https://janycode.github.io/2016/05/03/21_代码片段/01_工具类/03-MyBatisUtils/ 作者 Jerry(姜源) 发布于 2016年5月3日 许可协议 🔗 复制链接 📢 分享到微博 🐦 分享到 Twitter 📘 分享到 Facebook 💬 分享到微信 微信扫一扫分享 × 打开微信扫一扫,点击右上角分享 02-IDEA快捷键&高效插件 上一篇 04-HttpUtils 下一篇 Please enable JavaScript to view the comments