zoukankan      html  css  js  c++  java
  • 配置和使用连接池

    本例子中数据库为mytest中有表table,具体信息如下

    1、在Tomcat中配置和使用连接池

    (1)将JDBC的驱动复制到Tomcat的lib之下(如apache-tomcat-6.0.45lib),如下图所示

    (2)配置TOMCAT_HOMEconfserver.xml:在 <GlobalNamingResources>标签下添加

    <Resource name="jdbc/mytest"
    type="javax.sql.DataSource"
    username="root" password=""
    driverClassName="com.mysql.jdbc.Driver"
    maxIdle="40"
    maxWait="50"
    maxActive="10"
    url="jdbc:mysql://localhost:3306/mytest"
    />

    其中:

    name="名称"
    type="类型"
    username="数据库用户名" password="密码"(没有密码时 password=""中间不能有空格)
    driverClassName="驱动Class名称(全路径)"
    maxIdle="最大空闲连接数"
    maxWait="最大等待连接数"
    maxActive="最大活动连接数" 
    url="连接特征字符串"

    如下图所示

    (3)配置TOMCAT_HOMEconfcontext.xml在<Context>标签下添加

    <ResourceLink global="jdbc/mytest" name="jdbc/mytest" type="javax.sql.DataSource"/>

    目的是将server.xml配置的资源同Context(上下文)连接起来。

    如图所示

    (4)新建工程:Dynamic Web project,如图所示

    点击next,如图所示:

    项目命名为webdbpool

    单击Target Runtime右侧的New,如下图

    选择你的Tomcat的版本号,点击Next,选择你的Tomcat所在的路径,如图所示

    点击finish,回到创建项目的主界面,在点击完成。
    (5)修改webdbpoolWebRootWEB-INFweb.xml文件添加下面内容

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

    如下图所示

    (6)按照下图所示,创建WebDBUtility.java,TestDB.java和queryuser.jsp

    package jead.chap4;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    
    public class WebDBUtility {
        public static Connection getConnection(String strPoolName) throws NamingException, SQLException{
            Connection conn=null;
            InitialContext ctx=new InitialContext();
            
            DataSource ds =(DataSource) ctx.lookup("java:comp/env/"+strPoolName);
            conn=ds.getConnection();
            return conn;
            
        }
    
    }
    package jead.chap4;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.naming.NamingException;
    
    public class TestDB {
    
        public List getUserList(){
            ArrayList al=new ArrayList();
            Connection conn =null;
            Statement stmt =null;
            ResultSet rs =null;
            try {
                conn = WebDBUtility.getConnection("jdbc/mytest");
            
                stmt = conn.createStatement();
                String sql="select * from table1";
                rs =stmt.executeQuery(sql);
                while(rs.next()){
                    al.add("id:"+rs.getInt("_id")+"username:"+rs.getString("_username")+"password:"
                    +rs.getString("_password")+"desc:"+rs.getString("_desc")+"<br>");
                }
            } catch (NamingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally{
                    try {
                        if(rs!=null)
                        rs.close();
                        if(stmt!=null)
                            stmt.close();
                        if(conn!=null)
                            conn.close();
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                
            }
            return al;
            
        }
    }
    <%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" 
    pageEncoding="GB2312"%>
    <%@ page language="java" import="jead.chap4.*,java.util.List" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        
        <meta http-equiv="Content-Type" content="text/html;charset=GB2312">
        <title>Insert title here</title>
    
      </head>
      
      <body>
        <%
        out.println("用户查询:<br>");
        TestDB td = new TestDB();
        //List list =td.getUserList;
        List list =td.getUserList();
        for(int i=0;i<list.size();i++){
            out.println(list.get(i));
        }
         %>
      </body>
    </html>

    (7)发布项目。右键项目->Export->WAR file,如下图所示

    点击next,选择要发布的位置,如下图所示

    (8)在浏览器中输入localhost:8080/webdbpool/queryuser.jsp即可访问。结果如下:

    2、在JBoss中配置和使用连接池

    将驱动类mysql-connector-java-5.1.7-bin.jar放到JBOSS_HOMEserverdefaultlib下(注意:别放到了JBOSS_HOMElib下)

    (1)从JBOSS_HOMEdocsexamplesjca下复制mysql-ds.xml到JBOSS_HOMEserverdefaultdeploy并将其中内容改写为

    <?xml version="1.0" encoding="UTF-8"?>
    
    <datasources>
      <local-tx-datasource>
        <jndi-name>mytest1</jndi-name>
        <connection-url>jdbc:mysql://localhost:3306/mytest</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>root</user-name>
        <password></password><!--主要如果密码为空就不能有空格-->
        <min-pool-size>5</min-pool-size>
        <max-pool-size>20</max-pool-size>
        <idle-timeout-minutes>0</idle-timeout-minutes>
      </local-tx-datasource>
    </datasources>

    这时可以启动JBOSS,如果配置成功则控制台会打印出 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=mytest1' to JNDI name 'java:mytest1'

    (2)和上面一样新建工程:Dynamic Web project,如图所示

    点击next,如图所示:

    项目命名为JBossdbpoold

    在Target Runtime下选择JBoss Runtime

    (3)和上面一样创建,创建WebDBUtility.java,TestDB.java和queryuser.jsp

    不同的是WebDBUtility.java

     DataSource ds =(DataSource) ctx.lookup("java:comp/env/"+strPoolName);

    改为

     DataSource ds =(DataSource) ctx.lookup("java:/"+strPoolName);

    TestDB.java中

    conn = WebDBUtility.getConnection("jdbc/mytest");

    改为

    conn = WebDBUtility.getConnection("mytest");

    (4)按照上面类似的方法发布到JBOSS_HOMEserverdefaultdeploy中,在浏览器中输入http://localhost:8080/JBossdbpool/queryuser.jsp可以看到类似的结果

  • 相关阅读:
    BeautifulSoup使用总结
    使用python爬取整本《盗墓笔记》
    matplotlib使用总结
    模拟退火算法
    pandas实战——对星巴克数据的分析
    pandas使用总结
    JDBC之数据库操作基本步骤
    ERROR 2003: Can't connect to MySQL server on 'localhost' 的错误
    lammps 学习之:系统压力太大,导致原子丢失
    Idea中查看一个类的所有资料及其层级关系
  • 原文地址:https://www.cnblogs.com/shely-Wangfan/p/5575795.html
Copyright © 2011-2022 走看看