zoukankan      html  css  js  c++  java
  • tomcat+dbcp+jndi 配置

    1)添加jar包 tomcat6中 TOMCAT_HOME/lib 下是公用jar包

    dbcp需要3个jar包:Jakarta-Commons DBCP,Jakarta-Commons Collections,Jakarta-Commons Pool, 但是tomcat6已经用1个tomcat-dbcp.jar包含了这3个jar包,该包在 TOMCAT_HOME/lib 下,因此在tomcat下不需要再添加dbcp相关的3个包;

    将mysql-connector-java-5.1.6-bin.jar 拷贝到 TOMCAT_HOME/lib 下;

    2)添加数据源

    在 TOMCAT_HOME/conf/context.xml 中 添加数据源:

    <Context> 
       <WatchedResource>WEB-INF/web.xml</WatchedResource> 
        <Resource name="jdbc/test" 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/test?autoReconnect=true"/> 
    </Context> 

    3)在web.xml 中引用数据源

    <display-name>JNDI Test</display-name>     
       <description>A test for using of JNDI</description> 
        <resource-ref
            <description>DB Connection</description> 
            <res-ref-name>jdbc/test</res-ref-name> 
            <res-type>javax.sql.DataSource</res-type> 
            <res-auth>Container</res-auth> 
        </resource-ref>

      4)在jsp(或java)中使用数据源

    <%@ 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/test"
    select * from test 
    </sql:query> 
       
    <html> 
      <head> 
        <title>DB Test</title> 
      </head> 
      <body> 
       
      <h2>Results</h2> 
         
    <c:forEach var="row" items="${rs.rows}"
        id ${row.id}<br/> 
        str ${row.str}<br/> 
    </c:forEach> 
       
      </body> 
    </html> 

      

     5)tomcat的jndi实用类

    /**
         * 从数据库连接池获取数据库的链接
         */
        public Connection getConnection() {
              try 
                  Context  context =  new InitialContext();
                   DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/oa"); 
                } catch (NamingException e) { 
                    e.printStackTrace(); 
                    throw new RuntimeException("jndi 数据源加载失败!"); 
               }
                 
            boolean succ = false;<br>                Connection conn=null;<br>      try {
                conn = ds.getConnection();
                succ = true;
            catch (SQLException e) {
                e.printStackTrace();
                System.out.println("connection error");
            }
            return conn;
        }
  • 相关阅读:
    ASP'禁止网页缓存,验证码生成,删除文件 iFileName 文件名 iPath 文件路径
    ASP.NET中如何防范SQL注入式攻击
    ThickBox 2.0
    ASP.NET用户控件也可以在Web.Config中进行引用
    SQL Server数据类型介绍
    CSS和JS标签style属性对照表
    Server.UrlEncode、HttpUtility.UrlDecode的区别[两篇文章]
    使用table数据类型变量获得临时表
    关闭页面JS兼容火狐_谷歌_IE6、7、8
    SQL语句实现两个数据库表直接操作
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/4763141.html
Copyright © 2011-2022 走看看