Tomcat数据源

来源:互联网 发布:手机淘宝用邮箱注册 编辑:程序博客网 时间:2024/06/05 07:24

3-1Tomcat数据源

1、解决问题:建立数据连接池,提高数据使用效率

2、建立资源池,配置Tomcat下得server.xml

配置mysql数据池

atuh包括Container和application两种方式

   配置oracle数据池

在配置serverl.xml之后,需要对web.xml进行配置

<web-appxmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

   version="2.5">

 

  <display-name>Welcome toTomcat</display-name>

  <description>

     Welcome to Tomcat

  </description>

    <resource-ref>

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

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

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

    </resource-ref>

</web-app>

3、数据源的操作通过JDNI进行

步骤:

初始化名称查找上下文 Context ctx = new InitialContext();

通过名称查找DataSource DataSource ds =(DataSource)ctx.lookup(JDNI名称)

通过DataSource获得连接 Connectionconn = ds.getConnection();

 

<%@ pagecontentType="text/html" pageEncoding="GBK"%>

<%@ pageimport="javax.naming.*"%>

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

<%@ pageimport="java.sql.*"%>

<html>

<head><title></title></head>

<body>

<%

    String DSNAME = "java:comp/env/jdbc/mldn" ;   // 名称

    Contextctx = new InitialContext() ;

    DataSourceds = (DataSource) ctx.lookup(DSNAME) ;

    Connectionconn = ds.getConnection() ;    // 从连接池中取连接

%>

<%=conn%>

<%

    conn.close();   // 表示将连接放回到池之中

%>

</body>

</html>

真正的数据源名称为/jdbc/mldn ,添加java:comp/env是为了JNDI查找解决冲突(Weblogic/WebSphere)可以省略此项

 

 

建立数据源后可以使用其作为DAO改进

packagecn.mldn.lxh.dbc ;

importjava.sql.* ;

importjavax.sql.* ;

importjavax.naming.* ;

publicclass DatabaseConnection {

    private staticfinal String DSNAME = "java:comp/env/jdbc/mldn" ;

    private Connection conn;

    publicDatabaseConnection() throws Exception {

        Context ctx = newInitialContext() ;

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

        this.conn =ds.getConnection() ;

    }

    public Connection getConnection(){

        return this.conn ;

    }

    public void close() throws Exception {

        if(this.conn != null){

             try{

                 this.conn.close() ;

             }catch(Exception e){

                 throw e ;

             }

        }

    }

}

 

 

 

 

 

0 0