tomcat配置数据源

转载 2015年07月10日 16:09:18

在JDBC的操作中,打开和关闭数据库连接,是最耗费数据库资源的,我们可以在服务器上存放一定量的数据库连接,每当程序要连接数据库时,就将这些链接给它们,而一旦程序退出数据库操作时,要将这些链接返回给服务器。

下图是数据源的基本概念:

1:通过Connection Pool 管理数据库连接

2:通过Data Source 去管理Connection Pool

3: Data Source 被JNDI Tree 绑定

 

一:JNDI配置方式

现在来讲一下如何到服务器上对 Data Source 进行配置?

服务器: Tomcat 7

数据库:MySQL

1:将下面的代码添加到Tomcat服务器上conf/context.xml中的<Context></Context>标签中

<Resource

       name="jdbc/shopping"

       auth="Container"

       type="javax.sql.DataSource"

       maxActive="100"

       maxIdle="30"

       maxWait="10000"

       username="root"

       password="root"

       driverClassName="com.mysql.jdbc.Driver"

       url="jdbc:mysql://localhost:3306/shopping"

/>

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

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

   driverClassName属性是驱动程序名称。

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

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

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

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

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

 

2. 修改web.xml
 打开%TOMCAT_HOME%\conf\web.xml,在</web-app>的前面添加以下内容:

<description>MySQLTest App</description>

  <resource-ref>

      <description>DBConnection</description>

      <res-ref-name>jdbc/shopping</res-ref-name>

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

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

  </resource-ref>

3:建立测试文件

test.jsp

<%@ 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="jdbc/shopping">

select id, name, normalprice from product

</sql:query>

 

<html>

  <head>

    <title>DB Test</title>

  </head>

  <body>

 

  <h2>Results</h2>

 

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

    name ${row.name}<br/>

    normalprice ${row.normalprice}<br/>

</c:forEach>

 

  </body>

</html>

4.添加jar 

JDBC驱动程序mysql-connector-java-5-bin.jar放置在%TOMCAT_HOME%\lib和应用的WEB-INF\lib下,复制 jstl.jar 和 standard.jar 到 你的 WEB-INF/lib 目录.


5:配置名称name="jdbc/mldn"可以任意,配置完成后,需要通过名称查找的方式,去找到数据源,本示例代码运用的Tomcat服务器,所以在查找时需要对名称进行定位:java:comp/env

<%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="javax.naming.*"%>

<%!

    final String JNDINAME = "java:comp/env/jdbc/shopping" ;

%>

<%

    Connection conn = null ;

    try

    {

        // 初始化查找命名空间

        Context ctx = new InitialContext() ;

        // 找到DataSource

        DataSource ds =(DataSource)ctx.lookup(JNDINAME) ;

        conn = ds.getConnection() ;

    }

    catch(Exception e)

    {

        System.out.println(e) ;

    }

%>

<%=conn%>

<%

    // 将连接重新放回到池中

    conn.close() ;

%>

如果要配置局部数据源(使用SQLServer2008)

DataSource设置到我们的WEB项目中,下面详细的介绍下:

第一步:在我们的WEB项目中的META-INF文件夹下建立一个context.xml

Xml代码

<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource name="jdbc/sql"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://127.0.0.1:1433;databaseName=testsql"
username="sa"
password="550122091"
maxActive="50"
maxIdle="20"
maxWait="10" />
</Context>

 

第二步:在我们的WEB项目下的WEB-INF文件夹下建立一个web.xml(如果存在了就不用了,直接修改就行了)

(这几天测试了一下,不做这步也可以,O(∩_∩)O哈哈~省事了)

Xml代码

<resource-ref>

<description>DB Connection</description>

<res-ref-name>jdbc/mysql</res-ref-name>

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

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

</resource-ref>

第三步:我们就可以用代码来获取Connection对象了

Java代码

package xushun.util;

 

import java.sql.*;

import javax.sql.*;

import javax.naming.*;

 

public class DBHelper {

 

public static Connection getConnection() throwsSQLException,NamingException

{

           Connection conn = null ;
           try
           {
               // 初始化查找命名空间
               Context ctx= new InitialContext() ;
               // 找到DataSource
               DataSourceds = (DataSource)ctx.lookup("java:comp/env/jdbc/sql") ;
               conn =ds.getConnection() ;
           }
           catch(Exception e)
           {
              e.printStackTrace();
           } 
          return conn;

}

}

 转自:http://www.cnblogs.com/ITtangtang/archive/2012/05/21/2511749.html

http://blog.163.com/magicc_love/blog/static/185853662201111101130969/


相关文章推荐

tomcat配置JNDI数据源

  • 2013年07月24日 09:39
  • 25KB
  • 下载

Tomcat配置JNDI数据源

  • 2017年11月27日 16:32
  • 1.25MB
  • 下载

JavaWeb:Tomcat下配置数据源(JNDI)连接数据库

习惯了以硬编码的形式在程序中建立数据库连接,用完就在finally语句块中close一下就结束了。对于重视数据库连接数的应用来说,这样子做会耗费大量的时间和数据库资源,而且硬编码的形式也不甚灵活。 ...

Tomcat中配置数据源所需得jar包

  • 2010年05月06日 08:18
  • 201KB
  • 下载

tomcat配置oralce数据源.rar

  • 2011年06月02日 00:32
  • 533KB
  • 下载

什么是jndi,什么时候使用jndi,tomcat配置jndi,spring使用jndi数据源

JNDI 是什么 JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JN...

tomcat配置jdbc数据源

  • 2012年08月08日 13:30
  • 14KB
  • 下载

J2EE环境搭建(三)配置Tomcat 7.0的局部数据源

配置Tomcat 7.0的局部数据源 1.配置MySQL的JDBC驱动 2.下载安装MySQL 3.建立一个数据库和表 4.部署程序和配置局部数据源...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tomcat配置数据源
举报原因:
原因补充:

(最多只允许输入30个字)