欢迎来到天天文库
浏览记录
ID:50301432
大小:2.87 MB
页数:31页
时间:2020-03-07
《Java_Web应用开发 教学课件 作者 张如利 徐冬Java平台Web项目开发12.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、学习情境五电子商城商品信息维护工作任务十四数据库连接池使用工作任务十五JDBC配置文件读取工作作务十六RESULTSET封装使用任务十四修改电子商城系统增加通过JNDI查找数据源的功能实现用JNDI查询数据源并查询商品数据2会使用JNDI获取数据源理解数据库连接池作务目标3为什么要改造原来的数据库连接方式企业级开发需要稳健和高效的数据访问层完成对数据库的CRUD操作能够处理数据库发生的各种错误可以灵活的修改配置提供方便使用的工具高性能数据库请求响应操作结果要求高效、稳健的数据访问层打开连接,操作数据库,关闭连接多次重复操作传统的JDBC已经无法满足需求,那怎么办呢?4数据库连接
2、池(2-1)普通电话----建立连接,等待回应热线电话----已建立连接连接已连接开始通话开始通话已连接,直接通话连接中5流程框架图标使用规范连接池中的连接数据库想要获得连接返回一个连接返回一个已连接好的空闲连接应用程序从连接池中获得连接连接池是由容器提供的,用来管理池中连接对象应用程序连接池Connection1Connection2Connection36数据源简介数据源(DataSource)javax.sql.DataSource接口负责建立与数据库的连接从Tomcat的数据源获得连接把连接保存在连接池中应用程序Connection1Connection2Connect
3、ion3数据库想要获得连接返回一个连接连接池连接池中的连接对象是由谁创建的呢?7JNDI介绍如何获得DataSource对象数据源由Tomcat提供,不能在程序中创建实例使用JNDI获得DataSource引用什么是JNDIJNDI(JavaNamingandDirectoryInterface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的APIjavax.namming.Context接口的lookup()方法应用程序jdbc/s1jdbc/s2数据源数据源名称Connectioncontext.lookup("jdbc/s1")8使用JNDI获取连接对
4、象importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.naming.NamingException;importjavax.sql.DataSource;publicclassTitlesBean{publicListgetTitles(){try{Contextic=newInitialContext();DataSourcesource=(DataSource)ic.lookup("java:comp/env/jdbc/ShopSystem");Connectionconnecti
5、on=source.getConnection();pstate=connection.prepareStatement("SELECT*FROMproduct");ResultSetresults=pstate.executeQuery();}catch(SQLExceptionexception){exception.printStackTrace();}catch(NamingExceptionnamingException)namingException.printStackTrace();}finally{closeConn();}}}使用JNDI和数据源要导入的包通
6、过Context、DataSource获取Connection对象分为两部分java:comp/env为JavaEE默认路径jdbc/ShopSystem为DataSource名定义JNDI异常9JNDI的配置Tomcat的conf/context.xml中的配置属性名称说明name指定Resource的JNDI名称auth指定管理Resource的Manager(Container:由容器创建和管理
7、Application:由Web应用创建和管理)type指定Resource所属的Java类maxActive指定连接池中处于活动状态的数据库连接的最大数目maxIdle指定连接
8、池中处于空闲状态的数据库连接的最大数目maxWait指定连接池中的连接处于空闲的最长时间,超过这个时间会抛出异常,取值为-1,表示可以无限期等待
此文档下载收益归作者所有