当前位置: 首页 > news >正文

渠道合作一站式平台软件产品

渠道合作一站式平台,软件产品,长治企业网站建设价格,东莞企业建站公司三种 SqlSession ​SqlSession​ 是一个接口#xff0c;并且里面包含了许多 CRUD 操作数据库等方法。 ​SqlSession​​ 它有三个实现类#xff0c;分别是 SqlSessionManager​​ 、DefaultSqlSession​​ 和 SqlSessionTemplate​​#xff0c;其中 DefaultSqlSession​​…三种 SqlSession ​SqlSession​ 是一个接口并且里面包含了许多 CRUD 操作数据库等方法。 ​SqlSession​​ 它有三个实现类分别是 SqlSessionManager​​ 、DefaultSqlSession​​ 和 SqlSessionTemplate​​其中 DefaultSqlSession​​ 它的默认实现类。 DefaultSqlSession 是线程不安全的 Sqlsession 。也就是说 DefaultSqlSession 不能是单例必须是多例的。 ​SqlSessionManager​ 和 SqlSessionTemplate​ 是 SqlSession 的代理版每次新建一个代理对象。姿势都是一样的但是代理逻辑SqlSessionInterceptor 是不一样的。 代理 DefaultSqlSession 实现复用 在执行 getSqlSession 时两则都是利用 SessionFactory 工厂创建一个 DefaultSqlSession。然后尽可能复用 DefaultSqlSession而非多例的每次使用都创建一个 DefaultSqlSession。 SqlSession session sessionFactory.openSession(executorType);不同之处在于复用逻辑先看 SqlSessionTemplate 的 SqlSessionTemplate ​会将 SqlSession 封装成 SqlSessionHolder并有利用引用计数法当 referenceCount0。表示 SqlSession 还在使用。将 sqlSessionHolder 存放到 TransactionSynchronizationManager ​的 synchronizations ​中。synchronizations ​是一个 set 集合。 相对 SqlSessionTemplate 的SqlSessionManage 的比较简单一点。 SqlSessionManage 内部有一个线程私有变量 localSqlSession。private final ThreadLocalSqlSession localSqlSession new ThreadLocal();​SqlSessionManage 会将 DefaultSqlSession 放入到 ThreadLocal 线程私有的变量 localSqlSession 中用的时候先从 localSqlSession 中获取 DefaultSqlSession如果没有获取到则创建。 SqlSessionManager 的代理逻辑 private SqlSessionManager(){this.sqlSessionProxy (SqlSession)Proxy.newProxyInstance(SqlSessionFactory.class.getClassLoader(),new Class[]{SqlSession.class}, new SqlSessionInterceptor()); }public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {SqlSession sqlSession (SqlSession)SqlSessionManager.this.localSqlSession.get();if (sqlSession ! null) {return method.invoke(sqlSession, args);} else {SqlSession autoSqlSession SqlSessionManager.this.openSession();Object var8;try {try {Object result method.invoke(autoSqlSession, args);autoSqlSession.commit();var8 result;} catch (Throwable var20) {autoSqlSession.rollback();throw ExceptionUtil.unwrapThrowable(var20);}} catch (Throwable var21) {} finally {if (autoSqlSession ! null) {autoSqlSession.close(); }}return var8;} }SqlSessionTemplate 的代理逻辑 private SqlSessionTemplate(){this.sqlSessionProxy (SqlSession)Proxy.newProxyInstance(SqlSessionFactory.class.getClassLoader(), new Class[]{SqlSession.class}, new SqlSessionInterceptor()); }public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {SqlSession sqlSession SqlSessionUtils.getSqlSession(SqlSessionTemplate.this.sqlSessionFactory, SqlSessionTemplate.this.executorType, SqlSessionTemplate.this.exceptionTranslator);Object unwrapped;try {Object result method.invoke(sqlSession, args);if (!SqlSessionUtils.isSqlSessionTransactional(sqlSession, SqlSessionTemplate.this.sqlSessionFactory)) {sqlSession.commit(true);}unwrapped result;} catch (Throwable var11) {unwrapped ExceptionUtil.unwrapThrowable(var11);if (SqlSessionTemplate.this.exceptionTranslator ! null unwrapped instanceof PersistenceException) {SqlSessionUtils.closeSqlSession(sqlSession, SqlSessionTemplate.this.sqlSessionFactory);sqlSession null;Throwable translated SqlSessionTemplate.this.exceptionTranslator.translateExceptionIfPossible((PersistenceException)unwrapped);if (translated ! null) {unwrapped translated;}}throw (Throwable)unwrapped;} finally {if (sqlSession ! null) {SqlSessionUtils.closeSqlSession(sqlSession, SqlSessionTemplate.this.sqlSessionFactory);}}return unwrapped; }‍
http://www.dnsts.com.cn/news/180579.html

相关文章:

  • 网站模版制作教程中国企业500强排名
  • 网站云服务器租用百度网站管理
  • 做时时的网站哪个网站做长图免费转高清
  • 海洋网络网站建设网站设计基本结构
  • 自己电脑上做的网站 怎么让别人看做网站设计的有些什么职位
  • 手机端怎么网站建设做营销型网站要多少钱
  • 酒仙网技术开发与网站建设方面网站建设方案和报价
  • 关于旅游网站建设的摘要网站模板 seo
  • 海南专业网站建设定制网络规划设计师考试通过率
  • 佛山做网站3lue网页设计与制作教程第二版考试
  • 网站开发技术题目云搜索
  • 申请注册网站wordpress 微网站模板怎么用
  • 有没有做书签的网站网络推广专员职责
  • 温州网站搭建专门做壁纸的网站
  • 什么主题的网站容易做网站建设常用的英文
  • 太原做网站软件如何开天猫店铺
  • 生活服务行业网站建设视频网站是怎么做权限管理的
  • 哈尔滨发布seo短视频新地址在哪里
  • 网站建设 维护 运营情况报告网站做自己的超链接
  • 办公室设计说明seo排名点击软件
  • 网站建设 中企动力 东莞券多多是谁做的网站
  • 淮安市网站网站建设公司哪有
  • 免费的行情网站网站文件目录结构
  • 网站建设的数据储存在哪里wordpress 去掉骄傲的
  • 网站会员功能太原建站模板系统
  • 济南好的网站建设公司排名网站群集约化建设通知
  • 网站seoapp软文模板
  • 松江新城投资建设发展有限公司网站网站开发英文怎么说
  • 做调查的网站有哪些网络营销方案制定
  • 作者自己建立的网站企业网站排名软件能优化