数据库连接池

JNDI(简单理解为是一种将对象和名字绑定的技术,应用程序可以通过名字获取对应的对象或服务):

提供了查找和访问各种命名和访问各种命名和目录服务的通用、统一的接口。

context.xml文件<Coutext>内写入:

<Environment name="myname" value="lzx" type="java.lang.String"/> 

name:环境条目的名称,相对于java:comp/env的名称

type:环境条目的java类名的全称

value:通过JNDI context请求时,返回给应用的参数值,该值必须转换成type属性定义的java类型

 

 

数据库连接池以数据源的方式体现步骤:

1.配置context.xml文件。

<Resource name="指定Resource的JNDI的名字" auth="指定管理Resource的Manager" type="指定Resource所属的Java类型"
maxActive="100" maxIdle="10" maxWait="10000" username="数据库用户名"
password="数据库连接密码" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/NewsManagerSystem"
/>

auth:有两个值——Container(表示由容器创建Resource),Application(表示由Web应用创建和管理Resource)。

maxActive:指定数据库连接池中处于活动状态的数据库连接的最大数目

maxIdie:指定数据库连接池中中处于空闲状态的数据库连接的最大数目,取值为0,表示不受限制

maxWait:指定数据库连接池中数据库连接处于空闲状态的最长时间(以毫秒为单位),超出这一时间将会抛出异常

driverClassName:指定连接数据库的JDBC驱动程序

url:指定连接数据库的url

2.配置web.xml文件

<resource-ref>
<description>news DataSource</description>
<res-ref-name>jdbc/news</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

description:对所引用资源的说明

res-ref-name:指定所引用资源的JNDI名字与<Resource>元素的name值对应

res-type:指定所引用资源的类名字,与<Resource>元素中的type属性对应

res-auth:指定管理所引用资源的Manager,与<Resource>元素中的auth属性对应

3.添加驱动

往tomcat>lib添加驱动(直接复制过去)

4.编写代码,使用lookup()方法获得数据源对象

导包:<%@ page import="javax.naming.*" %> <%@page import="javax.sql.DataSource"%>

Connection con = null;

DataSource ds = (DataSource)ctx.lookup("java:comp/env/指定Resource的JNDI的名字");

con = ds.getConnection();

.......

posted on 2018-01-11 21:51  小欣柑  阅读(267)  评论(0编辑  收藏  举报

导航