其中的"/db.properties"文件内容是什么,放在什么位置放在WEB-INF\classes目录下

解决方案 »

  1.   

    1、该连接池程序对吗?
    2、如何使用jsp调用该连接池程序查询数据库,给个jsp调用连接池的例子!
    3、其中InputStream is = getClass().getResourceAsStream("/db.properties");的   
       db.propertiesd内容是什么?该放在什么位置
    4、”String logFile = dbProps.getProperty("logfile", "DBConnectionManager.log");其
       中的“DBConnectionManager.log日志文件应放在什么位置?
       先感谢各位的帮助!
      

  2.   

    内容是什么:
      在createPools(Properties props)方法里面你可以找到
      

  3.   

    根据/db.properties文件路径,properties类是应该放在您贴的这个类的根目录下db这个文件夹下,这个数据库连接类您应该知道放哪里吧:)我也没怎么明白文件内容,根据下边说的读取日志判断我觉得这个内容是说这个函数要实现读取或写入日志,首先要判断日志文件属性,是否有权限或可写,判断的依据就是这个properties,properties应该是一个权限或属性限制类个人理解,仅做参考
      

  4.   

    yaray(雅睿,生活在别处) :
       您好能否详细点(db.properties)!
       给个jsp调用该连接池的例子,我不胜感激!
        小妹是新手!
      

  5.   

    class DBConnectionPool 类的DBConnectionPool方法:其中您需要修改
                               this.name = name;//数据库名
    this.URL = URL;//数据库连接地址如localhost:1433
    this.user = user;//用户名
    this.password = password;//密码
    this.maxConn = maxConn;//设置最大连接数可以使用instance.getConnection(参数1,参数2) 方法连接数据库,参数1为库名,由变量name指定,参数2为连接超时时间,自己指定
    使用instance.freeConnection(参数1,参数2) 释放连接,参数2如果您使用getConnection() 方法建立连接参数2是您建立的这个连接名数据集怎么建立没有找到,还有很多变量需要自己修改,如数据库连接驱动字符串等个人理解,仅供参考:)
      

  6.   

    如您只是需要一个连接数据库的BEAN请从以前的帖子找例子,有完善的解决方案
      

  7.   

    Tomcat中SERVER.XML配置:
    <Context path="/bizcity" docBase="bizcity" debug="0">
      <Resource name="jdbc/bizcity" auth="Container"   type="javax.sql.DataSource" />
                <ResourceParams name="jdbc/bizcity">
       <parameter><name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter><name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
    </parameter>
                    <parameter><name>url</name><value>jdbc:microsoft:sqlserver://192.168.10.1:1433;DataBaseName=BizCity</value>
            </parameter>
                    <parameter><name>username</name><value>sa</value></parameter>
                    <parameter><name>password</name><value>123456</value></parameter>
                    <parameter><name>maxActive</name><value>20</value></parameter>
                    <parameter><name>maxIdle</name><value>10</value></parameter>
                    <parameter><name>maxWait</name><value>-1</value></parameter>
                </ResourceParams>
    </Context>
    maxActive是最大激活连接数,也就是同时最多有的数据库连接数。maxIdle是最大空闲连接数,是你不使用数据库连接时,也可以保持的数据库连接。我想在同一时间你的连接数是不可能maxActive的,你不可能用一个连接总连接着,不释放吧!如果你释放了,这个连接很有可能马上被其他的程序利用。
    *********************************
    *javac -deprecation -d . *.java *
    ********************************* 代碼部分:
    package biz;import java.sql.*;
    import javax.sql.*;
    import java.util.Vector;
    import java.util.Date;a
    import javax.naming.*;public class connpool{ // 連接池類
        private int maxconn; //最大連接數
        private int nActive; //已創建的連接數
        private Vector freeCons=new Vector(); //存儲當前可用連接的數組    private Context initCtx = null;   //Context 上下文类型
        private Context ctx =null;
        private DataSource ds=null;    public connpool()
        {
            this.maxconn=20;
            this.nActive =0;
            try{
                initCtx = new InitialContext(); //初始化上下文,可以读配置文件如:web.xml
                if(initCtx==null) throw new Exception("Initial Failed!");
                ctx = (Context) initCtx.lookup("java:comp/env");
                 //szJdbc="jdbc/bizcity" 此值在Tomcat的SERVER.XML文件中配置
                if(ctx!=null)  ds= (DataSource) ctx.lookup("jdbc/bizcity");
                if(ds==null)   throw new Exception("Look up DataSource Failed!");     //以上这是从配置文件读取上下文的一种方法!
    参数在上下文中定义
            }
            catch(Exception e){
                System.out.println(e.getMessage());
            }
        }    public void SetMaxConn(int n){//默認最大連接數為 20 ~ 200;
            if(n<20)  n=20;
            if(n>200) n=200;
            this.maxconn =n;
        }    public synchronized void freeConnection(Connection con) //歸還連接
        {  //synchronized关键字定义可异步同时连接
            try{
                if(con.isClosed()){
                    con=null;    //System.out.println("Connection is Closed\n");
                }
                else{
                    freeCons.addElement(con);   
                    System.out.println("Add Exists Connection,Current Conut=" + freeCons.size());
                }
            }
            catch(Exception e){System.out.println(e.getMessage());}
            //notifyAll();
        }    public synchronized Connection getConnection(long timeout) //取得一個連接(指定超時時間)
        {
            long startTime=new Date().getTime(); //記錄超時用
            Connection con=null;
            while(con==null){
                if(freeCons.size()>0){//在有可用的連接時,選用可用連接
                    con=(Connection) freeCons.firstElement(); //從數組中取得第一個    把能用的连接取走了一个,当然再能用的连接中,减去一个了
                    freeCons.removeElementAt(0); //並從數組中刪除
                    try{
                      if(con.isClosed()){ //如果已關閉,則將已創建連接減一
                            nActive--;
                            con=null;
                        }
                    }
                    catch(Exception e){System.out.println(e.getMessage());}
                    if(con!=null) System.out.println("Get Exists Connection\n");
                }else if(nActive<maxconn){ //沒有可用連接且已創建的連接數小于最大數時,創建新連接
                    con=newConnection();
                    if(con!=null) System.out.print("Create New Connection ******" + nActive );
                }
                if(con!=null) break; //取得可用連接後,則直接退出等待
                //否則,進行等待0.5s,進行下一次獲取連接的操作
                try{
                    wait(500); //等待0.5秒
                }
                catch(InterruptedException e) {}
                if((new Date().getTime()-startTime)>=timeout){
                    System.out.println("Connection timeout\n");
                    break; //超時則退出
                }
            }
            return con;
        }    public void release(){ //關閉所有連接
            int i=freeCons.size();
            int j=0;
            for (j=0;j<i;j++){
                Connection con=(Connection)freeCons.elementAt(j);
                try{
                    con.close();
                }
                catch(SQLException e) {
                    System.out.println("無法關閉連接池中的當前連接");
                }
            }
            freeCons.removeAllElements();
            nActive=0;
        }    private Connection newConnection(){ //創建一個新連接
            Connection con=null;
            try{
                con=ds.getConnection();
                if(con==null) throw new Exception("Create Connection Failed!");
                else nActive++;
            }
            catch(Exception e){
                System.out.println(e.getMessage());
            }
            return con;
        }
    }
    JSP調用:
    <%@ page language="java" import="java.sql.*"%>
    <jsp:useBean id="vCon" scope="application" class="biz.connpool"/><%!
        Connection con=null;
        java.sql.Statement stmt=null;
    %><%
    try{
        if(con==null) con=vCon.getConnection(10000); //最大等待時間為10s
        stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    }   //两个结果集 第一个参数时说结果集是不可滚动的,只能向前滚!
    第二个是结果集是只读的
    catch(Exception e){
        System.err.println(e.getMessage());
    }ResultSet rs=stmt.executeQuery("Select *........");
    ........stmt.close();
    vCon.freeConnection(con);
    con=null;
    %>这个是JSP调用的楼主改一下即可
      

  8.   

    .properties文件是java的一个特有的文件,相当于window的ini文件,主要是为什么读一些配置。
    在程序运行前你可以在这个文件中配置些重要的参数。
    这种格式的文件很用。
    我想如果你不是对java很熟悉的话就不要自己去写连接池。
    因为毕竟还是蛮有难度的,如果你真的要用的话,你可以去网上找上些公司写好的连接池,
    反正也是不用钱的。而且有源代码,你可以先研究一下,然后再去写自己的连接池。
      

  9.   


    DBConnectionManager.class 
    db.properties 
    应该在同一目录下。
    我的连接池调用如下
    Database 与 你的 DBConnectionManager 差不多。不过比你的要好。
    Database db = new Database("oracle");
    Connection conn = db.getConn();
    ResultSet rs =db.executeQuery("SELECT * FROM USER");
    while(rs.next()){
    ...
    }
    db.executeUpdate("DDL cmd");db.close();
    //db.reboot();
    //db.shutdown();
      

  10.   

    配置文件放在classes下,内容如下drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver
    logfile=D:\\Project\\Web Root\\WEB-INF\\log\\log.txtidb.url=jdbc:idb:c:\\local\\javawebserver1.1\\db\\db.prp
    idb.maxconn=20access.url=jdbc:odbc:test
    access.user=
    access.password=
    access.maxconn=20