`
beyondqinghua
  • 浏览: 41423 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

配置数据源

    博客分类:
  • JEE
阅读更多

配置好tomcat5.5的数据库连接池,相对以前的服务器版本会有些区别,在此把心得总结给大家,如有意见希望指点

 

一、服务器配置

1、配置全局的数据库连接池(此数据库连接池能在所有WEB服务器内站点使用)

server.xml中设置数据源

<GlobalNamingResources> </GlobalNamingResources>节点中加入

<Resource name="JNDI名字" auth="Container" type="javax.sql.DataSource"                maxActive="100" maxIdle="30" maxWait="10000" username="数据库名称" password="密码" driverClassName="数据库驱动" url="连接URL "/>

或者context.xml中设置数据源链接

<Context></Context>节点中加入

<Resource name="JNDI名字" auth="Container" type="javax.sql.DataSource"                maxActive="100" maxIdle="30" maxWait="10000" username="数据库名称" password="密码" driverClassName="数据库驱动" url="连接URL "/>

2、配置局部数据库连接池(此数据库连接池只能在指定站点使用)

server.xml中设置数据源

<host></host>结点中加入

<Context path="/站点路径名称" docBase="站点名称" debug="0" reloadable="true" crossContext="true">

<Resource name="JNDI名字" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="用户名" password="密码" driverClassName="数据库驱动 " url="连接URL"/>

</Context>

二、站点设置

web.xml中添加

  <resource-ref>

      <description>DB Connection</description>

      <res-ref-name>JNDI名字</res-ref-name>

      <res-type>javax.sql.DataSource</res-type>

      <res-auth>Container</res-auth>

  </resource-ref>

测试程序

package test;

import java.sql.*;

import javax.naming.*;

import javax.sql.*;

import java.util.*;

 

public class LinkDB{

      

           Connection conn=null;

        Statement  ps = null;

        ResultSet rs = null;

       

        public ResultSet getRS(){

              

               try{

                      InitialContext ic = new InitialContext();

                     

                      DataSource ds = (DataSource)ic.lookup("java:comp/env/JNDI名字");

                      conn=ds.getConnection();

                      ps = conn.createStatement();

                      rs = ps.executeQuery("select * from admin;");

               }catch(Exception e){

                      e.printStackTrace();

               }

               return rs;

        }

}

或者(需要下载jstl.jarstandard.jar放置在lib下面)

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

 

<sql:query var="rs" dataSource="JNDI名字 ">

select name, passwd, type from admin

</sql:query>

<html>

  <head>

    <title>DB Test</title>

  </head>

  <body>

  <h2>Results</h2>

 

<c:forEach var="row" items="${rs.rows}">

    Foo ${row.name}<br/>

    Bar ${row.passwd}<br/>

</c:forEach>

  </body>

</html>

 

备注:

1、              服务器配置需要放置commons-dbcp-1.2.2.jar、以及相应的JDBC驱动到tomcatcommon/lib下面

2、              我在使用LinkDB.java的时候ic.lookup("java:comp/env/JNDI名字");如果没有加入java:comp/env/会出现name jdbc is not bound in this context错误,而使用JSTL的时候则不用

<script></script>

相关推荐

Global site tag (gtag.js) - Google Analytics