Tomcat6.20配置数据源

来源:互联网 发布:18000的java培训费 编辑:程序博客网 时间:2024/04/30 23:29

一、在META-INF下创建context.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<Context reloadable="true">

   <Resource name="jdbc/ibmDB" auth="Container" type="javax.sql.DataSource"

       maxActive="100" maxIdle="30" maxWait="10000"

       username="root" password=""

       driverClassName="com.mysql.jdbc.Driver"

       url="jdbc:mysql://localhost:3306/fairpayfairway?autoReconnect=true" />

</Context>

 

name:指定Resource的JNDI名字

auth:指定管理Resource的Manager,它有两个可选值:Container和Application。Container表示有容器来创建和管理Resource,

Application表示由Web应用来创建和管理Resource

type:指定Resource所属的Java类名

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

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

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

可以无限期等待

username:指定连接数据库的用户名

password:指定连接数据库的密码

driverClassName:指定连接数据库的JDBC驱动器中的Driver实现类的名字

url:指定连接数据库的url

 

二、在web.xml文件中加入<resource-ref>元素

<resource-ref>

      <description>DB Connection</description>

      <res-ref-name>jdbc/ibmDB</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属性对应

 

三、连接类

 

 

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

 

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

 

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

 

/**

 * 数据库连接管理

 *

 

 * 当程序结束数据库访问后,应该调用Connection对象的close()方法,及时将

 * Connection对象返回数据库连接池,使Connection对象恢复到空闲状态。

 *

 

 * @author wyyl1 

 * @version 1.0.0

 */

public class ConnDB {

   

    /**

     * 打开数据库连接

     *

     * @return 数据库连接

     */

    public Connection getConn() {

       Context ctx = null;

       DataSource ds = null;

           try {

              ctx = new InitialContext();

           } catch (NamingException e) {

              log.error("InitialContext fail" ,e );

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

          

           try {

              ds = (DataSource)ctx.lookup("java:comp/env/jdbc/ibmDB");

           } catch (NamingException e) {

              log.error("ctx.lookup fail" ,e );

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

          

           try {

              conn = ds.getConnection();

           } catch (SQLException e) {

              log.error("DB get Connection fail" ,e );

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

      

       return conn;

      

    }

   

    /**

     * 关闭数据库连接

     *

     * @param rs 结果集

     * @param pset 预处理

     * @param conn 数据库连接

     */

    public void closeDB(ResultSet rs, PreparedStatement pset, Connection conn){

       try {

           if(rs!=null)

           {

              rs.close();

           }

           if(pset!=null){

              pset.close();

           }

           if(conn!=null)

           {

              conn.close();

           }

       } catch (Exception e) {

           log.error("DB Connection close fail" ,e );

           // TODO: handle exception

       }     

    }

   

    private static final Log log = LogFactory.getLog(ConnDB.class);

   

    private Connection conn = null; // 获取连接

   

}

 

 

四、在tomcat的lib目录下加入:(在孙姐姐的书里,她没有写这一步)

mysql-connector-java-5.1.7-bin.jar

mysqldriver.jar

原创粉丝点击