Tomcat7配置DBCP数据源

1 篇文章 0 订阅

JNDI配置方式

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,听起来非常专业,其实很简单,就是为某个java对象起一个名子,例如,如下的操作,就是为Tomcat容器中的数据源起一个名子"jdbc/demo",从而其他程序可以能过该名子来访问訪数据源对象。

服务器: Tomcat 7

数据库:oracle 12c

1:将下面的代码添加到Tomcat服务器上conf/context.xml中的<Context></Context>标签中,其中红色加深部分需要根据自己实际进行修改

复制代码
<Resource 
       name="jdbc/demo" 
       auth="Container" 
       type="javax.sql.DataSource"
       maxActive="100" 
       maxIdle="30" 
       maxWait="10000"
       username="root" 
       password="root" 
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@localhost:1521:orcl"
/>

上下文context.xml中的参数的解析如下:

  其中的name属性是数据源名称,通常采取jdbc/**.

   driverClassName属性是驱动程序名称。

   username,password,数据库名称和密码

   url:访问的数据库路径。其中url的内容组成解析上篇博客中已经分析

   maxActive属性是并发连接的最大数。设置为0则无限制。

   maxWait属性是等待连接的最大连接的时间。

   maxIdle属性是连接池中空闲的连接的个数。

2. 有的文章说修改web.xml
 修改%TOMCAT_HOME%\conf\web.xml,在</web-app>节点中添加内容 或是

 修改工程下的web.xml文件。工程目录下bin下WEB-INF web.xml。但是经我测试,不配置web.xml也可以使用。
我测试时,如下片段没的配置,也可以正常跑起来

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

请注意,jdbc/demo名字一定要与tomcat中context.xml统一。

3.将Oracle数据库的JDBC驱动ojdbc7.jar放入TOMCAT_HOME//lib下。

4.建测试jsp页面,把下面代码直接copy一下,进行小小的调整,改成自己数据库里有的表名称
<%@page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		 Context ctx = new InitialContext();
		 
		 DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/demo");
		 
		 Connection conn = ds.getConnection();
		 
		 Statement st = conn.createStatement();
		 
		  ResultSet rt = st.executeQuery("select * from users");
		 
		 while(rt.next()){
		 	out.print(rt.getString(1) + "\t" + rt.getString(2) + "<br/>");
		 }
	 %>
</body>
</html>

测试通过 !!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值