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

宠物论坛网站策划书大专毕业设计模板范文

宠物论坛网站策划书,大专毕业设计模板范文,浙江住房和城乡建设厅报名网站,学设计的视频网站SqlSessionFactory作为MyBatis框架的核心接口有三大特性 SqlSessionFactory是MyBatis的核心对象 用于初始化MyBatis#xff0c;创建SqlSession对象 保证SqlSessionFactory在应用中全局唯一 1.SqlSessionFactory是MyBatis的核心对象 假设我们要查询数据库的用户信息#x…SqlSessionFactory作为MyBatis框架的核心接口有三大特性 SqlSessionFactory是MyBatis的核心对象 用于初始化MyBatis创建SqlSession对象 保证SqlSessionFactory在应用中全局唯一 1.SqlSessionFactory是MyBatis的核心对象 假设我们要查询数据库的用户信息在MyBatis框架中首先需要通过SqlSessionFactory创建SqlSession然后才能使用SqlSession获取对应的Mapper接口进而执行查询操作 在前一章我们学习了如何创建MyBatis的配置文件mybatis.config.xml本章我们要学习创建SqlSessionFactory读取mybatis.config.xml配置信息数据库驱动连接URL用户名和密码来建立与数据库的连接基础。它是创建SqlSession对象的工厂而SqlSession对象是与数据库进行实际交互的关键是用于执行SQL语句管理事务以及获取映射器Mapper的核心接口 如果没有SqlSessionFactory就无法获取SqlSession也就不能执行诸如查询插入更新和删除等数据库操作 前一章MyBatis的配置文件mybatis-config.xml配置内容为 2.用于初始化MyBatis创建SqlSession对象 我们在IDEA中用代码演示如何创建SqlSession对象首先我们要打开pom.xml文件为了测试的方便引入单元测试组件junitjunit是Java中单元测试框架通过单元测试可以了解我们程序的运行情况 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependency 在引用以后我们打开test下java这个目录新建包名为com.test.mybatis,test这个包保存的就是我们一个个的单元测试类 在这个包下再创建一个名为MyBatisTestor单元测试类 该类的代码内容创建如下  package com.test.mybatis;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test;import java.io.IOException; import java.sql.Connection;//JUNIT单元测试类 public class MybatisTestor {Testpublic void testSqlSessionFactory() throws IOException {//利用Reader加载classpath下的mybatis—config.xml核心配置文件Reader reader Resources.getResourceAsReader(mybatis-config.xml);//初始化SqlSessionFactory对象同时解析mybatis—config.xml文件SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(reader);System.out.println(SessionFactory加载成功);SqlSession sqlSession null;try{//创建SqlSession对象SqlSession是JDBC的扩展类用于与数据库交互sqlSession sqlSessionFactory.openSession();//创建数据库连接测试用Connection connection sqlSession.getConnection();System.out.println(connection);}catch(Exception e){e.printStackTrace();}finally{//如果sqlSession不等于null则代表创建成功if(sqlSession !null){//如果typePOOLED,代表使用连接池close则是将连接回收到连接池中//如果typeUNPOOLED,代表直连close则会调用Connection.close()方法关 闭连接sqlSession.close();} } }代码语句功能实现解析  Reader reader Resources.getResourceAsReader(mybatis-config.xml);这行语句主要实现以字符流的方式进行读取读取mybatis-config.xml文件的代码  SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(reader);而这段语句则是利用构造者模式SqlSessionFactoryBuilder初始化SqlSessionFactory对象通过构造者模式的.build方法将reader对象传入它就会通过reader对象解析和读取MyBatis的核心配置文件mybatis-config.xml并且返回对应的sqlSessionFactory对象  然后需要我们利用sqlSessionFactory.openSession根据mybatis-config.xml描述的配置信息得到SqlSession对象用于与数据库交互SqlSession对象我们把它形象的看作是一个底层的数据库连接在Mybatis中利用SqlSession对数据表进行增删改查操作 //openSession方法是SqlSessionFactory提供的用于创建SqlSession方法 SqlSession sqlSession sqlSessionFactory.openSession();当我们进行数据库操作的时候我们可以利用SqlSession提供的一系列方法来完成交互 引用.getConnection来得到数据库连接对象之后将connection对象打印出来演示创建数据库连接的过程在正常开发时是由Mybatis自动帮我们完成的我们并不需要用到这行代码这里为了方便大家理解只做演示使用 Connection connection sqlSession.getConnection(); System.out.println(connection); 运行得到结果 数据库连接已经能够正常创建说明我们mybatis.config.xml所描述的信息是正确的 对于数据库来说有创建连接数据库就要有关闭数据库的操作目前我们实现了数据库连接那么如何对数据库进行关闭呢我们对下面这组代码进行try-catch异常检查并实现关闭数据库操作代码 SqlSession sqlSession null; try{//创建SqlSession对象SqlSession是JDBC的扩展类用于与数据库交互sqlSession sqlSessionFactory.openSession();//创建数据库连接测试用Connection connection sqlSession.getConnection();System.out.println(connection);}catch(Exception e){e.printStackTrace();}finally{//如果sqlSession不等于null则代表创建成功if(sqlSession !null){//如果typePOOLED,代表使用连接池close则是将连接回收到连接池中//如果typeUNPOOLED,代表直连close则会调用Connection.close()方法关闭连接sqlSession.close();} } 3.保证SqlSessionFactory在应用中全局唯一 为什么要保证SqlSessionFactory在应用中全局唯一呢 资源消耗SqlSessionFactory 在创建过程中需要读取和解析 MyBatis 的配置文件mybatis - config.xml配置文件包含了数据库连接信息、缓存配置、映射文件位置等内容。解析这些配置文件相对复杂和消耗资源如果频繁地创建 SqlSessionFactory 实例就会多次重复这个解析过程这会导致不必要的性能开销。 如何保证SqlSessionFactory全局唯一 ——这里需要依赖Java中的一些开发技巧和特性利用MyBatisUtils工具类 MyBatisUtils 是一个自定义的工具类主要用于简化在 MyBatis 框架下与数据库交互过程中的一些常见操作。它的核心目的是提供方便的方法来获取和管理 MyBatis 中的关键对象如 SqlSessionFactory 和 SqlSession从而让开发人员能更高效地进行数据库访问操作。 我们通过程序代码的方式来演示如何创建初始化工具类MyBatisUtils 在上述编写MyBatisTestor代码中我们初始化了SqlSessionFactory对象 在我们平时开发中如果按照上述创建方法每一次创建SqlSession都要重复编写这段代码就造成了一系列不必要的资源浪费为了保证全局唯一我们就需要创建MyBatisUtils工具类下面我们用代码来实现如何创建 新建类 名为MyBatisUtils 类的内容如下 //将SqlSessionFactory全局对象初始化为null private static SqlSessionFactory sqlSessionFactorynull添加静态块 并用try-catch对其捕捉 static{Reader reader null;try{Reader reader Resources.getResourceAsReader(mybatis-coonfig.xml);sqlSessionFactory new SqlSessionFactoryBuilder().build(reader);}catch(IOException e)e.printStrackTrace();//用try—catch包裹后将类的初始化过程中产生的异常抛出去throw new ExceptionInInitializerError(e);} } /***openSession 创建一个新的SqlSession对象*return SqlSession对象*/public static SqlSession openSession(){return sqlSessionFactory.openSession(); } /***关闭一个有效的SqlSession对象*param session 准备关闭SqlSession对象*/public static void closeSession(SqlSession session){if(Session null){session.close();} } 1.Reader reader Resources.getResourceAsReader(mybatis-coonfig.xml); 使用MyBatis框架提供的Resources类的getResourceAsReader方法根据指定的文件名从类路径下找到对应的文件并将其转换为一个Reader对象方便后续能够以字符流的形式读取配置文件的内容 2.sqlSessionFactory new SqlSessionFactoryBuilder().build(reader); 利用build对象构建sqlSessionFactory对象build需要传入read字符类的输入流 再增加一段方法演示MyBatisUtils工具类如何实现 public void testMyBatisUtils(){//调用MyBatisUtils得到SqlSession对象SqlSession sqlSession MyBatisUtils.openSession();//调用getConnection得到对应的数据库连接Connection connection sqlSession.getConnection();//将其打印出来System.out.println(connection);//调用closeSession对sqlSession对象进行释放MyBatisUtils.closeSession(sqlSession);} 运行结果显示 说明得到了一个有效的数据库连接
http://www.hkea.cn/news/14422484/

相关文章:

  • 北京微信网站开发费用登陆建设官方网站
  • 教人做衣服的网站游戏周边产品 做网站
  • 网站维护的内容做游戏需要学什么
  • 网站 刷流量怎么做付费网站
  • 承德网站制作公司哪家好切换国外ip的软件
  • 设计图纸网站品牌型网站制作哪
  • 网站电脑培训班附近有吗怎么做县城分类信息网站
  • 对门户网站建设的见解游戏推广平台哪个好
  • 免费网站建设自带后台管理程序我们网站在那里登陆后台系统管理
  • 泌阳县网站建设用jsp sqlserver做的购物网站
  • 怎样能注册自己的网站做桂林网站的图片大全
  • 深圳市住房建设局网站怎么打不开创艺装饰
  • 网站建设中页面设计平面设计师参考网站
  • 重庆做网站建设哪家好js代码能用在wordpress吗
  • dns 本地 网站建设东莞网站推广多少钱
  • wordpress 守望轩厦门网站seo优化
  • 昆山网站建设机构网站运营与维护的方法
  • 互动平台罗马复兴南宁公司做seo
  • 安徽公司招聘网站连云港做网站制作首选公司
  • 云南网站建设天软科技附近找工作招聘信息
  • PHP手机网站开发工程师前端和后端分别需要学什么
  • 多个域名 指向同一个网站上海短视频拍摄制作公司
  • 西安网站建设系统开发wordpress免费版主题
  • 哪个网站做ic外单好深圳网上申请营业执照流程
  • 自己做发卡网站长新闻资讯型网站开发
  • 工作室装修网站源码html代码编辑器
  • 网站上的用户注册怎么做的长沙网站建设外包
  • 男女做暖暖的网站大全成都网站建设
  • 网站图片分辨率域名解析手机网站建设
  • 深圳沙井做网站公司十大app开发公司排名