Mybatis单例模式如何实现?

更新于
2026-10-12 08:20:08
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计195个文字,预计阅读时间需要1分钟。

Mybatis单例模式如何实现?

示例模式创建sqlSessionFactory,包名:orc.jxnd.tools;导入所需的类。代码如下:

java创建SqlSessionFactory实例,位于包:orc.jxnd.tools

Mybatis单例模式如何实现?

单例模式创建sqlSessionFactory

package orc.jxnd.tools; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Tools { private static SqlSessionFactory sqlSessionFactory; private static final String resource = "mybatis.xml"; private static ThreadLocal tl = new ThreadLocal (); static{ try { InputStream inputStream= Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //SqlSession不能使用单例,sqlSessionFactory可以使用单例 public static SqlSession getSqlSession(){ SqlSession session = tl.get(); if(session==null){ session = sqlSessionFactory.openSession(); tl.set(session); } return session; } public static void closeSqlSession(){ SqlSession session = tl.get(); if(session!=null){ tl.set(null); session.close(); } } public static void commit(){ SqlSession sqlSession=tl.get(); if (sqlSession !=null) { tl.set(null); sqlSession.commit(); } } public static void rollBack(){ SqlSession sqlSession=tl.get(); if (sqlSession !=null) { tl.set(null); sqlSession.rollback(); } } }

本文共计195个文字,预计阅读时间需要1分钟。

Mybatis单例模式如何实现?

示例模式创建sqlSessionFactory,包名:orc.jxnd.tools;导入所需的类。代码如下:

java创建SqlSessionFactory实例,位于包:orc.jxnd.tools

Mybatis单例模式如何实现?

单例模式创建sqlSessionFactory

package orc.jxnd.tools; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Tools { private static SqlSessionFactory sqlSessionFactory; private static final String resource = "mybatis.xml"; private static ThreadLocal tl = new ThreadLocal (); static{ try { InputStream inputStream= Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //SqlSession不能使用单例,sqlSessionFactory可以使用单例 public static SqlSession getSqlSession(){ SqlSession session = tl.get(); if(session==null){ session = sqlSessionFactory.openSession(); tl.set(session); } return session; } public static void closeSqlSession(){ SqlSession session = tl.get(); if(session!=null){ tl.set(null); session.close(); } } public static void commit(){ SqlSession sqlSession=tl.get(); if (sqlSession !=null) { tl.set(null); sqlSession.commit(); } } public static void rollBack(){ SqlSession sqlSession=tl.get(); if (sqlSession !=null) { tl.set(null); sqlSession.rollback(); } } }