上面是我的数据库连接池代码,下面我用这个servlet调用
package project1;import java.io.*; 
import java.sql.*; 
import javax.servlet.*; 
import javax.servlet.http.*; public class TestServlet extends HttpServlet {
private DBConnectionManager connMgr;
public void init(ServletConfig conf) throws ServletException { 
super.init(conf); 
connMgr = DBConnectionManager.getInstance(); 

public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { 
res.setContentType("text/html;charset=gb2312"); 
PrintWriter out = res.getWriter(); 
Connection con = connMgr.getConnection("oracle"); 
if(con==null) 

out.println("Cant get connection"); 
    
return; 

ResultSet rs = null; 
ResultSetMetaData md = null; 
Statement stmt = null; 
try { 
stmt = con.createStatement(); 
rs = stmt.executeQuery("SELECT * FROM sale_info"); 
out.print("can get select ");
md = rs.getMetaData(); 
out.println("sale infomation "); 
out.println("<Table border=2>");
while (rs.next()) { 
out.println("<tr>"); 
for (int i =1; i<md.getColumnCount(); i++) { 
out.print("<td>"+rs.getString(i) + "</td>"); 

out.print("</tr>");

out.println("</table>");
stmt.close(); 
//rs.close(); 

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

connMgr.freeConnection("oracle", con); 
}public void destroy() { 
connMgr.release(); 
super.destroy(); 

}  

解决方案 »

  1.   

    drivers=oracle.jdbc.driver.OracleDriver
    logfile=F:\\log.txt
    oracle.maxconn=100
    oracle.url=jdbc:oracle:thin:@hupeng:1521:dd
    oracle.user="scott"
    oracle.password="as680168"
      

  2.   

    这是我的全部代码
    问题是,我现在对这个怎样调用数据库连接池的问题感到很迷惑?不是很清楚这个servlet是怎样去调用连接池的?
    执行后页面就是显示servlet中if语句的Cant get connection,不能把数据库中的数据显示出来,这是什么问题啊?然后日志文件显示:
    Mon Apr 14 09:27:02 CST 2008: 成功注册JDBC驱动程序oracle.jdbc.driver.OracleDriver
    Mon Apr 14 09:27:02 CST 2008: 成功创建连接池oracle
    Mon Apr 14 09:27:02 CST 2008: 正确返回数据库连接
    Mon Apr 14 09:27:02 CST 2008: 无法取得新连接
    高手帮帮忙啊~~~先谢谢咯
      

  3.   

    public class GetDataSource {
        public DBPlugIn() {
        }
        public void destroy() {
        }
        public DataSource getDS(){
           DataSource ds = (DataSource) servlet.getServletContext().getAttribute("datasourcdName");//根据数据源名取得数据源
            retur ds;
        }
    }
      

  4.   

    Mon Apr 14 09:27:02 CST 2008: 无法取得新连接 难道你的连接池设置的最大连接数为1呵呵!!
      

  5.   

    catch (Exception e) { 
        ex.printStackTrace(); // 把异常打印出来
             log("无法取得新连接"); 
           } 已经看到好多人把异常屏蔽了,简单的打印一句:"出错了”。 真奇怪。都是哪些人误导的呢???
      

  6.   

    我改了,但是一直是打印TestServlet.java中IF语句的can't get connection,怎样调用的DBConnection.java
    的,和DBConnection.java怎样工作不是很明白?麻烦回答一下~~~
      

  7.   

    Connection con = connMgr.getConnection("oracle");  
    if(con==null)  
    {  
    out.println("Cant get connection");      
    return;  

    还是调试追踪以下 connection ……
      

  8.   

    多多学习,,,,,http://www.japee.com.cn/jew/pages/Main.aspx
      

  9.   

    db.properties drivers=oracle.jdbc.driver.OracleDriver
    logfile=F:\\log.txt
    oracle.maxconn=100
    oracle.url=jdbc:oracle:thin:@hupeng:1521:dd
    oracle.user="scott"
    oracle.password="as680168"
      

  10.   

    如果用JSP调用,代码又该怎么写啊?谁能贴一个出来啊,谢谢
      

  11.   

    我修改了,但是每次都还是执行TestServlet.java中IF语句的Cant get connection.不能获取数据库连接
    没有执行下面的Select语句,也没有抛出异常
      

  12.   

      我现在很怀疑这个文件的问题,因为现在一直打印出TestServlet.java中IF语句的Cant get connection.不能获取数据连接 ,可能根本就没有连接到数据库去,到处查了一下,好像这个文件也没什么问题
    F:\\log.txt 记录信息:
    Tue Apr 15 08:45:27 CST 2008: 撤销JDBC驱动程序 oracle.jdbc.driver.OracleDriver的注册
    Tue Apr 15 08:45:30 CST 2008: 成功注册JDBC驱动程序oracle.jdbc.driver.OracleDriver
    Tue Apr 15 08:45:30 CST 2008: 成功创建连接池oracle
    Tue Apr 15 08:45:30 CST 2008: 正确返回数据库连接
    Tue Apr 15 08:45:30 CST 2008: 无法取得新连接这个日志文件又记录的成功创建了连接池的和返回数据库连接的,感觉与打印出来的信息有点矛盾样?
    麻烦各位回答一下,小弟在线等待啊~~~
      

  13.   

    08/04/15 15:37:25 java.sql.SQLException: 调用中无效的参数
    08/04/15 15:37:25  at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
    08/04/15 15:37:25  at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:175)
    08/04/15 15:37:25  at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:240)这是JDeveloper控制台中显示的信息?是那里的问题呢?
      

  14.   

    问题解决了~~~谢谢各位的回答,首先还是要感谢一下J2EE_Union去里的朋友帮我解决了这个问题(群号:30687253不错的群,里面很多人都很热情的回答问题),把错误发出来大家看看,以便像我一样的后者,呵呵!整了几天才整好,郁闷的心情有点变化~~
    private Connection newConnection() { 
           Connection con = null; 
           try { 
             if (user != null) { 
               con = DriverManager.getConnection(URL); 
                
               log("建立数据库连接URL"); 
             } 
           } 
           catch (Exception e) { 
             log("无法取得新连接"); 
           } 
         return con; 
         } DriverManager.getConnection("url","name","password");