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

做购物网站的费用上海有名的效果图公司

做购物网站的费用,上海有名的效果图公司,郑州新密网站建设,在网站制作前需要有哪些前期策划工作MyBatis的事务管理是由TransactionFactory和Transaction两个接口定义的#xff0c;TransactionFactory负责生成Transaction#xff0c;这是一个典型的工厂模式。 官方提供了事务管理的两种模式#xff1a; Managed#xff1a;对应ManagedTransactionFactory和ManagedTran…MyBatis的事务管理是由TransactionFactory和Transaction两个接口定义的TransactionFactory负责生成Transaction这是一个典型的工厂模式。 官方提供了事务管理的两种模式 Managed对应ManagedTransactionFactory和ManagedTransactionJDBC对应JdbcTransactionFactory和JdbcTransaction 重点看一下Transaction中提交和回滚的实现 public class ManagedTransaction implements Transaction {Overridepublic void commit() throws SQLException {// Does nothing}Overridepublic void rollback() throws SQLException {// Does nothing}}public class JdbcTransaction implements Transaction {Overridepublic void commit() throws SQLException {if (connection ! null !connection.getAutoCommit()) {if (log.isDebugEnabled()) {log.debug(Committing JDBC Connection [ connection ]);}connection.commit();}}Overridepublic void rollback() throws SQLException {if (connection ! null !connection.getAutoCommit()) {if (log.isDebugEnabled()) {log.debug(Rolling back JDBC Connection [ connection ]);}connection.rollback();}} }可以看出这两者的主要区别在于ManagedTransaction不会进行实际的事务提交和回滚而是交由外部进行控制而JdbcTransaction是我们能进行实际事务提交和回滚的所以如果我们要手动控制事务应该指定事务管理器为JdbcTransactionFactory例如在mybatis的配置文件中 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttps://mybatis.org/dtd/mybatis-3-config.dtd configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLED/dataSource/environment/environments /configuration那Transaction和实际执行查询的SqlSession又是什么关系呢原来是创建SqlSession的时候会交由Executor管理一起传给SqlSession public class DefaultSqlSessionFactory implements SqlSessionFactory {private SqlSession openSessionFromDataSource(ExecutorType execType, TransactionIsolationLevel level, boolean autoCommit) {Transaction tx null;try {final Environment environment configuration.getEnvironment();final TransactionFactory transactionFactory getTransactionFactoryFromEnvironment(environment);tx transactionFactory.newTransaction(environment.getDataSource(), level, autoCommit);final Executor executor configuration.newExecutor(tx, execType);return new DefaultSqlSession(configuration, executor, autoCommit);} catch (Exception e) {closeTransaction(tx); // may have fetched a connection so lets call close()throw ExceptionFactory.wrapException(Error opening session. Cause: e, e);} finally {ErrorContext.instance().reset();}} }当我们执行SqlSession的commit()时实际上是调用Executor的commit进而调用Transaction的commit() public class DefaultSqlSession implements SqlSession {Overridepublic void commit(boolean force) {try {executor.commit(isCommitOrRollbackRequired(force));dirty false;} catch (Exception e) {throw ExceptionFactory.wrapException(Error committing transaction. Cause: e, e);} finally {ErrorContext.instance().reset();}} }public abstract class BaseExecutor implements Executor {Overridepublic void commit(boolean required) throws SQLException {if (closed) {throw new ExecutorException(Cannot commit, transaction is already closed);}clearLocalCache();flushStatements();if (required) {transaction.commit();}} }
http://www.pierceye.com/news/595446/

相关文章:

  • 站长统计网站统计建立自己的网站软件有
  • 单页网站制作系统装修的网站都有哪些
  • 什么样的网站可以做站内站外贸网站wordpress
  • 网站栏目策划方案上不了建设银行网站
  • 深圳网络营销网站推广方法大连网页设计制作公司
  • 去哪想找人帮我做网站网站开发连接形式
  • 网龙公司有做网站吗北京建设银行支行查询官方网站
  • 本地推广找哪些网站wordpress isux主题
  • 写作网站可保存德阳网站建设公司
  • 找人做网站要密码吗榆林网站seo
  • 不同网站建设报价单深圳室内设计公司排行
  • wap网站价格用python做网站的多吗
  • 为什么要找对做网站的公司枣阳网站建设等服务
  • 有阿里云的主机了怎么做网站北京做网站ezhixi
  • 物业网站模板下载支付宝官网登录入口
  • 医疗网站模版北京建筑信息平台
  • 关于网站建设电话销售的开场白爱网站最新发布址
  • 聊城职业 网站建设与管理酒店类网站开发的策略
  • 学习建设网站建设网站那家好
  • 秦皇岛住房建设网站网站改版建设
  • thinkphp做的网站怎么预览启信宝企业查询
  • 网站为什么没有被收录营销网站都有哪些
  • 广州网站建设比较好的公司芜湖网站公司
  • 网站建设教育机构做图表用的网站
  • 正规手表回收网站重庆观音桥必吃美食
  • 交流稿 网站建设企业网站制作策划书
  • 提取网站子页面邮箱图书网站建设规划书
  • 1元建站阳光市往房和城乡规划建设局网站
  • 安徽和城乡建设厅网站怎么做微信上的网站吗
  • 外贸网站建设有什么需要注意的吗网站开发是什么环境