• tomcat6下配置连接池2


    以前配置过一次,感觉不是太好用,现在又试了一次,效果还不错,记录一下,以备后用

    1.WEB项目的META-INF目录(不是WEB-INF)下新建XML配置文件context.xml,内容如下:

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

    <Context path="/jrtSrv" docBase="jrtSrv" reloadable="true" crossContext="true"> 

        <Resource name="jdbc/MSSql" auth="Container" type="javax.sql.DataSource"   
        maxActive="100"   
        maxIdle="30" 
        maxWait="5000" 
        username="sa" 
        validationQuery="select 1"
        password="youpassword" 
        driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
        url="jdbc:microsoft:sqlserver://192.168.56.101:1433;DatabaseName=MYDB"/> 
    </Context> 

    注意validationQuery="select 1" 这句,非常重要,对于网络异常或者数据库重启,可以对connection 进行重新建立

    2.在项目WEB-INF下的WEB.xml中添加如下内容:

     <resource-ref>
      <description>DBConnection</description>
      <res-ref-name>jdbc/MSSql</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
     </resource-ref>

    3.OK 收工,写个t.jsp页面测试下:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    <%@page contentType="text/html; charset=GB2312"%>
    <%@page import="java.sql.*"%>
    <%@page import="javax.naming.*"%>
    <%@page import="javax.sql.DataSource"%>

    <%
     String path = request.getContextPath();
     String basePath = request.getScheme() + "://"
       + request.getServerName() + ":" + request.getServerPort()
       + path + "/";
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">

    <title>My JSP 'MyJsp.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
     <link rel="stylesheet" type="text/css" href="styles.css">
     -->

    </head>

    <body>

     <%
      String tablename = "t_beds";
      String sqlstr;
      Connection con = null;
      Statement stmt = null;
      ResultSet rs = null;
      Context ctx = null;
      try {
       ctx = new InitialContext();
       DataSource ds = (DataSource) ctx
         .lookup("java:comp/env/jdbc/MSSql");

       con = ds.getConnection();

       stmt = con.createStatement();
       sqlstr = "select * from " + tablename;
       rs = stmt.executeQuery(sqlstr);
       ResultSetMetaData rsmd = rs.getMetaData();//获取元数据
       int j = 0;
       j = rsmd.getColumnCount();//获得结果集的行数
       for (int k = 0; k < j; k++) {
        out.print(rsmd.getColumnName(k + 1));//显示表中字段属性
        out.print("\t");
       }
       out.print("<br>");
       /*3.读取查询结果 */
       while (rs.next()) {

        out.print(rs.getString("id"));
        out.print("\t");
        out.println(rs.getString("stateId"));
        out.print("\t");
        out.print(rs.getString("updateTime"));
        out.print("\t");
        out.print("<br>");
       }
      }

      /*4.异常处理 */
      catch (NamingException e1) {
       out.println(e1.toString());
       out.println("驱动程序没有找到!");
      } catch (SQLException e2) {
       out.println(e2.toString());
       out.println("数据库异常!");
      }

      /*5.关闭数据库 */
      finally {
       try {
        if (rs != null)
         rs.close();
        if (stmt != null)
         stmt.close();
        if (con != null)
         con.close();

       } catch (Exception e) {
        out.println(e.toString());

       }
      }
     %>
    </body>

    </html>

    ----------------------------------------------------------

    参考文章:

    http://blog.sina.com.cn/s/blog_570f6d940100sor4.html

    还有一篇百度文库上的文章,找不到出处了

  • 相关阅读:
    【C#】Color颜色对照表
    eslint的实践
    关于babel和webpack结合使用的实践
    前端学习博客
    css学习4--网格布局
    css学习3--flexbox布局
    CSS学习2-布局介绍
    css学习1
    前端性能优化
    line-height介绍
  • 原文地址:https://www.cnblogs.com/ventry/p/2646488.html
Copyright © 2020-2023  润新知