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

网站开发工具手机商城系统哪个好

网站开发工具,手机商城系统哪个好,wordpress 制作下载,wordpress后台空白学习mybatis不得不了解SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession。这里主要是讲解它们的生命周期以及一般最佳实践。 一般来说对象的生命周期也就是对象创建到销毁的过程#xff0c;如果在这个过程中#xff0c;如果实现的代码质量不佳#xff0c;那么很容易…  学习mybatis不得不了解SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession。这里主要是讲解它们的生命周期以及一般最佳实践。 一般来说对象的生命周期也就是对象创建到销毁的过程如果在这个过程中如果实现的代码质量不佳那么很容易造成程序上的错误或者效率的降低。   1、SqlSessionFactoryBuilder     SqlSessionFactoryBuilder可以被jvm虚拟机所实例化、使用或者销毁。一旦使用SqlSessionFactoryBuilder对象创建SqlSessionFactory后SqlSessionFactoryBuilder类就不需要存在了也就是不需要保持对象的状态可以随意的由jvm销毁。因此SqlSessionFactoryBuilder对象的最佳使用范围是方法内部。    2、SqlSessionFactory     SqlSessionFactory对象是由SqlSessionFactoryBuilder创建。一旦创建SqlSessionFactory类的实例该实例应该在应用程序执行期间都存在根本不需要每一次操作数据库时都创建所以其最佳实践方式就是单例模式或者使用Spring框架来实现单例模式对SqlSessionFactory对象进行有效管理后续会讲解。    3、SqlSession      SqlSession对象由SqlSessionFactory类创建需要注意的是每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享是线程不安全的其实我们去扒看SqlSession接口定义可以发现里面定义了数据的增删改查以及事务处理以及实例对象的关闭。那么很显然在操作该对象的时候必须要保持其线程安全不然在并发情况下肯定会乱套。或者将SqlSession实例对象存放在一个类的静态字段甚至是实例字段中。   4、简单封装    由1、2、3得知SqlSessionFactoryBuilder会被jvm自动销毁、SqlSessionFactory不需要每次操作数据库都创建、SqlSession必须是线程安全的那么针对这3点以下做了一个简单封装。    SyncSqlSessionFactory类主要是获取SqlSessionFactory单例对象 package com.mybatis.util;import java.io.IOException; import java.io.InputStream;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class SyncSqlSessionFactory {private static SqlSessionFactory sqlSessionFactory;private SyncSqlSessionFactory() {}synchronized public static SqlSessionFactory getSqlSessionFactory() {try {if (sqlSessionFactory null) {String resource mybatis-config.xml;InputStream inputStream Resources.getResourceAsStream(resource);sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);}} catch (IOException e) {e.printStackTrace();}return sqlSessionFactory;} }   SafeSqlSessionUtil类保证SqlSession线程安全的前提下封装了事务的回滚提交操作。 package com.mybatis.util;import org.apache.ibatis.session.SqlSession;public class SafeSqlSessionUtil {private static ThreadLocalSqlSession threadLocal new ThreadLocalSqlSession();public static SqlSession getSqlSession() {SqlSession sqlSession threadLocal.get();return sqlSession null ? SyncSqlSessionFactory.getSqlSessionFactory().openSession() : sqlSession;}public static void commit() {if (threadLocal.get() ! null) {threadLocal.get().commit();threadLocal.get().close();threadLocal.set(null);}}public static void rollback() {if (threadLocal.get() ! null) {threadLocal.get().rollback();threadLocal.get().close();threadLocal.set(null);}} }   5、使用示例 try {SqlSession sqlSession SafeSqlSessionUtil.getSqlSession();//基本操作sqlSession.delete();sqlSession.update();sqlSession.select(,null);} catch (Exception e) {SafeSqlSessionUtil.rollback();}finally{SafeSqlSessionUtil.commit();}   6、需要说明的地方   synchronized如果某个synchronized方法是static的那么当线程访问该方法时它锁的并不是synchronized方法所在的对象而是synchronized方法所在的类所对应的Class对象。Java中无论一个类有多少个对象这些对象会对应唯一一个Class对象因此当线程分别访问同一个类的两个对象的两个staticsynchronized方法时它们的执行顺序也是顺序的也就是说一个线程先去执行方法执行完毕后另一个线程才开始。   ThreadLocal线程级别的隔离。它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。多数情况下ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单更方便且结果程序拥有更高的并发性。   理解得更加通俗一点就是一个是锁机制进行时间换空间一个是存储拷贝进行空间换时间。转载于:https://www.cnblogs.com/wucj/p/5162213.html
http://www.huolong8.cn/news/167672/

相关文章:

  • 宿迁网站建设制作小说搜索风云榜排名
  • 教育培训营销型网站建设哪家好网站头部导航代码
  • 网站的后台系统怎么进入企业网站建设存在的不足与困难
  • 南苑网站建设泰安市建设局
  • 三合一网站什么意思wordpress百度模板
  • 易县有没有z做网站的wordpress导航菜单插件
  • 网站建设中faqs的意思微信公司网站
  • 免费自助建站全系统开发网站app公司
  • termux wordpress没有网站怎么做排名优化
  • 问鼎电子娱乐下载官方网站网页制作的超文本标记语言称为
  • 企业网站宣传册应该哪个部门做wordpress iphoto主题
  • 成都比较有名的设计公司网站建设优化哪家公司好
  • 郑州网站开发外包php建站视频教程
  • 手机营销网站建设学校 网站建设 招标
  • 搭建企业网站的步骤网站开发需要多少钱价格
  • 心理咨询网站后台北京投资公司
  • 网站规划设计书网站后台模板 免费
  • 微网站模板开发网站内容和备案不一
  • qq人脸解冻自助网站开发app需要多少人
  • wordpress自定义文章页面模板下载seo优化包括什么
  • 做网站基本教程wordpress 图片比例
  • 东莞金融网站建设山东省城乡与建设厅网站首页
  • 企业网站建站的专业性原则是指网站信息内容应该体现建站目的和目标群体北京网站建设东轩seo
  • 外贸网站建设不可缺少的灵活性网站关键词推广工具
  • oa网站开发模板网站建设中扁平化结构
  • 宿迁市住房和城乡建设局老网站网页封装网站怎么做的接口
  • 杭州网站开发工程师wordpress 响应式主题
  • 个人网站空间一般多大百度移动网站检测
  • led外贸网站制作营销型网站模板下载
  • 营销型网站 策划运营网站wordpress子目录站点