版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章JDBC高级特性3JNDI,连接池本章内容JAVA命名和目录接口(JNDI)连接池Metadata(元数据)JDBC与JNDIJNDI是一组在Java应用中访问命名和目录服务的API(Java命名与目录接口)命名服务将名称和对象联系起来,使得我们可以通过名称访问对象。目录服务是命名服务的扩展,两者之间的关键差别是目录服务中对象可以有属性(例如:用户有email地址),而命名服务中对象没有属性。JNDIAPI提供了一种统一的方式,可以在本地或网络上查找和访问服务各种服务在命名服务器上注册一个名称,需要使用服务的应用程序通过JNDI找到对应服务就可以使用。JNDI主要有两部分组成:应用程序编程接口和服务供应商接口。应用程序编程接口提供了Java应用程序访问各种命名和目录服务的功能(API)服务供应商接口提供了任意一种服务的供应商使用的功能(SPI:serviceprovider
interface)JDBC与JNDIJDBC与JNDI在JNDI中注册能操作数据(JDBC)的服务,应用程序找到服务访问数据JDBC:本地有驱动程序,知道数据在哪里,只有一个应用程序能用JNDI:可以获得访问数据相关的对象,从而操作数据。本地不需要驱动,也不需要知道数据在哪里,所有需要访问数据库的应用都可以用JNDI中的数据访问驱动代码的加载由服务提供方负责应用程序需要URL找到指定的服务JNDI
API使应用程序可以通过逻辑名称获得指定的数据源JNDI
API提供数据库源服务需要以下内容与数据源关联的数据库驱动程序数据源对象的引用名称JDBC数据源接口javax.sql.DataSource接口是在Java程序设计时使用JNDI获得数据库连接的工具应用程序使用JNDI通过注册名称获得的就是DataSource实现类对象通过DataSource实现类对象可以获得数据库连接对象(Connection)所有需要访问数据库的应用程序都可以使用此服务,所以需要同时返回多个连接对象—连接池由驱动程序供应商实现实现DataSource接口的对象在基于JNDI API的命名服务中注册后,应用程序就可以通过JNDI获得相关对象,从而访问数据库服务器。JNDI总结JNDI:提供了一种统一的方式,可以在本地或网络上查找和访问服务。各种服务在命名服务器上注册一个名称,需要使用服务的应用程序通过JNDI找到对应服务就可以使用。JDBC与JNDI:使用JDBC创建一个访问数据库的对象,此对象在JNDI服务器中注册一个逻辑名称,通过JNDI查找到该名称就可以获得相关对象。使得多个应用程序都可以访问数据库。JDBC:本地有驱动程序,知道数据在哪里,只有一个应用程序能用JNDI:可以获得访问数据相关的对象,从而操作数据。本地不需要驱动,也不需要知道数据在哪里,所有需要访问数据库的应用都可以用JNDI能注册各种各样可用的服务,使用JDBC实现的数据访问服务是其中之一本章内容JAVA命名和目录接口(JNDI)连接池Metadata(元数据)连接池是缓存在内存中的多个可重复使用的数据库连接客户端请求连接池获得一个连接对象(Connection),然后就可以使用连接对象访问数据库不需要客户端注册驱动程序大大提高了数据访问性能连接对象拿来就直接使用,不需要注册驱动及使用驱动创建连接对象连接池实现连接池javax.sql.ConnectionPoolDataSource接口对象是提供PooledConnection对象的工厂第三方实现连接池需要实现javax.sql.PooledConnection接口和javax.sql.ConnectionPoolDataSource接口PooledConnection就是一个到数据库的物理连接PooledConnection接口对象就是应用程序从连接池获得的连接所引用的对象当应用程序关闭从连接池获得的连接时,基础物理连接会被回收而不是被关闭由厂商实现常见连接池产品:bonecp,dbcp,proxool,c3po配置连接池(1/2)连接池应该是在服务器或中间件中使用,客户端通过连接池获得连接对象用来访问数据库使用DBCP实现连接池commons-collections-3.2.1.jarcommons-dbcp-1.4.jarcommons-pool-1.6.jar数据库驱动(mysql-connector-java-5.1.18-bin.jar)创建perties文件对连接池属性进行配置配置连接池(2/2)使用DBCP连接池,在perties文件中对连接池属性进行配置:.mysql.jdbc.Driver
//配置驱动类url=jdbc:mysql://localhost:3306/test
//配置连接字符串username=rootpassword=rootmaxActive=50//登陆数据库的用户名//登陆数据库的密码//最大活动连接数,设为0为没有限制maxIdle=20 //最大空闲连接数,设为0为没有限制maxWait=60000 //最大等待毫秒数,设为-1为没有限制……使用连接池Properties pro
=
new
Properties();pro.load(new
FileInputStream(“perties”));
//读取连接池配置信息DataSource
ds
=BasicDataSourceFactory.createDataSource(pro);Connection conn
=ds.getConnection();PreparedStatement pstmt
=
conn.prepareStatement("select
*
from
student");ResultSet rs
=pstmt.executeQuery();System.out.println("id\tname\tage");while(rs.next()){System.out.print(rs.getInt(1)+"\t");System.out.print(rs.getString(2)+"\t");System.out.print(rs.getInt(3)+"\n");}……conn.close();本章内容JAVA命名和目录接口(JNDI)连接池Metadata(元数据)Metadata(元数据)元数据是关于数据本身的信息数据格式或大小通过JDBC
API获取数据库元数据(Database
metadata)结果集元数据(Resultset
metadata)数据库元数据使用connection.getMetaData()方法获得数据库元数据方法返回数据库元数据引用(DatabaseMetaData)元数据包括关于数据库的表、受支持的SQL语法、存储过程、此连接的功能等信息相关方法:isReadOnly()判断此数据库是否处于只读模式getDatabaseMajorVersion()检索底层数据库的主版本号getDriverMajorVersion()检索此JDBC驱动程序的主版本号getDriverName()检索此JDBC驱动程序的名称getUserName()检索此数据库的已知的用户名称结果集元数据使用resultSet.getMetaData()方法获得结果集元数据方法返回ResultSetMetaData引用用于获取关于ResultSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江公务员面试模拟134
- 四川行政职业能力模拟54
- 甘肃省公务员面试真题汇编11
- 六年级上册书法教案
- 2024年个人月度工作总结30篇
- 2017年6月24日黑龙江省公务员考试(艰苦边远地区)面试真题
- 2024年假期补课协议书
- 2024年公司经营权转让合同
- 地方公务员西藏申论76
- 2024年机器设备买卖合同
- TBIA 28-2024 骨科疾病诊疗数据集 -骨科院内静脉血栓栓塞症
- 2024年中央企业全面质量管理知识竞赛考试真题库(含答案)
- 卫生院实验室安全管理制度和流程及安全准则
- 2024年天津市滨海新区九年级语文中考二模试卷附答案解析
- 2022-2023学年北京市海淀区首都师大二附中九年级(上)期中数学试卷【含解析】
- 17《爬天都峰》第一课时 公开课一等奖创新教学设计
- 《银行业从业人员职业操守和行为准则》课件
- 北京2023-2024学年六年级下学期小升初数学试卷含解析
- “非遗”之首-昆曲经典艺术欣赏智慧树知到期末考试答案章节答案2024年北京大学
- 2024安徽叉车集团限责任公司(合力叉车)高校毕业生招聘(高频重点提升专题训练)共500题附带答案详解
- 股权投资撤资通知书
评论
0/150
提交评论