• tomcat配置dbcp数据库连接池


    主要步骤:

    1.要在tomcat下的conf包中的server.xml中加入数据库连接池配置信息:

    在<Host>标签下加入

      <Context path="/myweb" docBase="D:/apache-tomcat-6.0.18/webapps/myweb" > 
      <Resource auth="Container" name="jdbc/jlndb" type="javax.sql.DataSource"
        factory="org.apache.commons.dbcp.BasicDataSourceFactory" 
        driverClassName="oracle.jdbc.OracleDriver"     
        url="jdbc:oracle:thin:@localhost:1521:JLNDB" 
        username="db" 
        password="db" 
        maxActive="10000" 
        maxIdle="10000" 
        maxWait="10000" 
        removeAbandoned="true" 
        removeAbandonedTimeOut="10" 
        logAbandoned="true"/>
       </Context>

    注释:

    path指定访问Web应用的URL入口,注意/myweb,而不是myweb,必须有/。

    docBase:表示的项目的具体路径。

    < Resource >元素为JNDI,在lookup是要查找的资源,name: 表示JNDI在lookup是输入的资源名。

    auth:是连接池管理权属性,Container表示容器管理。

    name:表示你的连接池的名称也就是你要访问连接池的地址。

    type:是对象的类型。

    driverClassName:是数据库驱动的名称。

    url:是数据库的地址。

    username:是登陆数据库的用户名。

    password:是登陆数据库的密码。

    MaxActive:连接池的最大数据库连接数。设为0表示无限制。

    maxIdle:最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。

    maxWait :最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。

    removeAbandoned:是否自我中断,默认是 false 。

    removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值。
    logAbandoned:是否记录中断事件, 默认为 false。

    注意:

    其中factory="org.apache.commons.dbcp.BasicDataSourceFactory" 也可以配置

    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 

    *maxActive:最大连接数据库连接数,设 0 为没有限制
    *maxIdle:最大等待连接中的数量,设 0 为没有限制
    *maxWait:最大等待毫秒数, 单位为 ms, 超过时间会出错误信息

    2.在web.xml中加入配置信息:

    数据库资源映射信息

     <resource-ref id="db">
        <description>DB Connection</description>
        <res-ref-name>jdbc/jlndb</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
     </resource-ref>

    其中id可以不写。

    注意:这里我没有配置web.xml也成功了。

    3.添加架包,确认tomcat的common/lib或者lib目录下存在如下架包:DBCP的依赖包:

    commons-pool.jar

    commons-dbcp.jar

    数据库的驱动包:我们这里用的是oracle 10g。

    ojdbc14.jar

    ojdbc14_g.jar

    另外再确保存在

    naming-resources.jar

    naming-factory.jar

    naming-common.jar

    commons-collections.jar

    jndi.jar

    4.编写测试jsp名test.jsp

    在myweb目录下建立test.jsp内容如下:

     <%@ page import="java.sql.*"%>
    <%@ page import="javax.sql.*"%>
    <%@ page import="javax.naming.*"%>
    <%@ page contentType="text/html;charset=GB2312"%>
    <html>
    <head>
    <title>my jdbc action</title>
    </head>
    <body>
    <h2>连接池测试</h2>
    <%
     Connection con = null;
     Statement stmt = null;
     ResultSet rs = null;
     DataSource ds = null;
     String str=null;
    %>
    <%
      try {
      //找到驱动程序并注册
      Context initContext = new InitialContext();
      Context envContext = (Context) initContext.lookup("java:/comp/env");
      //取得数据源
      ds = (DataSource) envContext.lookup("jdbc/jlndb");
      //以下为另一种取得数据源的方式
      //ds = (DataSource) initContext.lookup("java:comp/env/jdbc/jlndb");
      //取得数据库连接
      con = ds.getConnection();
      if (envContext == null) {
       System.out.println("envContext is null");
      } else {
       System.out.println("envContext is not null");
      }

      if (ds == null) {
       System.out.println("ds is null");
      } else {
       System.out.println("ds is not null");
      }

      if (con == null) {
       System.out.println("con is null");
      } else {
       System.out.println("con is not null");
      }
            //创建Statement
      stmt = con.createStatement();
            //创建sql
      String query = "SELECT * FROM DB.TBHLUSER";
            //执行查询sql
      rs = stmt.executeQuery(query);
      while (rs.next()) {
       str = rs.getString(2);
       System.out.println(str);
      }

     } catch (SQLException e) {
      e.printStackTrace();
     }

     finally {

      if (con != null) {
       con.close();
      }

     }
    %>
    打印从数据库中取得的数据:
    <%=rs.toString()%>
    <br>
    <%=str%>

    </body>
    </html>

    5.在oracle数据中实例jlndb中建表并添加数据:

    建立表tbhluser:

     CREATE TABLE tbhluser (
      id VARCHAR (4) DEFAULT '' NOT NULL,
      name VARCHAR (30) DEFAULT '' ,
      password  VARCHAR (16) DEFAULT '' ,
      groupId VARCHAR (50) DEFAULT '' ,
      grade VARCHAR (2) DEFAULT '',
      PRIMARY KEY(id)
    );

    添加数据:

     insert into db.tbhluser VALUES ('1', 'yuli', 'yuli', 'yuli', 'yl')

    6.启动tomcat,在浏览器中输入http://localhost:8080/myweb/test.jsp

    如果看到如下信息

    连接池测试

    打印从数据库中取得的数据: org.apache.commons.dbcp.DelegatingResultSet@908881
    yuli

    则表示配置成功。

  • 相关阅读:
    solr和mongodb比较
    IKAnalyzer原理分析
    maven项目java包名的路径问题
    solr的EmbeddedSolrServer原理深入探讨
    团队冲刺第二阶段06
    构建之法读书笔记06——敏捷流程
    团队冲刺第二阶段05
    团队冲刺第二阶段04
    团队冲刺第二阶段03
    团队冲刺第二阶段02
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2887858.html
Copyright © 2020-2023  润新知