oracle 10g,tomcat,xp我现在只能打开一次数据库连接,执行一次查询,这是没有问题的。这个 OK后,我执行其他连接数据库的代码和语句,要么提示错误,要么没有返回结果。
请问是怎么回事,如何解决呢。
我没有使用javabean,连接,查询都是在 jsp,使用脚本段做的。有什么要注意的么。

解决方案 »

  1.   

    连接一次就行了,其他连接再建connection就行了,是在一个页面中吗?
      

  2.   

    在不同的页面。
    所以不同页面是需要新建connection的,感觉上是建立一个连接后,其他的连接就不能用了。
    因为我这个表单的连接使用后,之前一个好的查询页面查询后的数据不显示了。
      

  3.   


    <%
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();  
    }catch(Exception e){
    out.println(e);} 
    String url="jdbc:oracle:thin:@137.200.32.65:1521:oamissid"; 
    String user="aem"; 
    String password="aem"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="Select name from event_level "; 
    ResultSet rs=stmt.executeQuery(sql); 
    %>
    <select name="Eventlevel" size="1" id="select"> 
         <option value="Please choose">--please choose--</option>   
         <%  
      while(rs.next()){%>                    
        <option value='<%=rs.getString("name")%>'><%=rs.getString("name")%></option>   
      <% } %>
      <% rs.close(); 
    stmt.close(); %>
        </select>  </td>        
      </tr>
      
      
      <tr>
        <td height="37" bordercolor="#FF3300"><a class="subnavlink">Report User</a></td>
        <td bordercolor="#FF3300"><input type="text" name="Reportuser" id="ReportUser" /></td>
        <td bordercolor="#FF3300"><a class="subnavlink">Location</a></td>
        <td bordercolor="#FF3300">      
        <% 
        Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
        String sql1="Select name from store "; 
        ResultSet rs1=stmt1.executeQuery(sql1);  
        %>
          <select name="Location" size="1" id="Location">
           <option value="Please choose">--please choose--</option>        
        <%  
        while(rs1.next()){%>                    
        <option value='<%=rs1.getString("name")%>'><%=rs1.getString("name")%></option>   
      <% } %>
    <% 
    rs1.close();
    stmt1.close();
    %>   </select>        
           </td>
      </tr>
      
      <tr>
        <td height="37" bordercolor="#FF3300"><a class="subnavlink">Email Address</a></td>
        <td bordercolor="#FF3300"><input type="text" name="Emailaddress" id="Email" /></td>
        <td bordercolor="#FF3300"><a class="subnavlink">Phone Number</a></td>
        <td bordercolor="#FF3300"><input type="text" name="Phonenumber" id="Phone" /></td>
      </tr>
      
      <tr>
        <td height="40" bordercolor="#FF3300"><a class="subnavlink">Subject</a></td>
        <td bordercolor="#FF3300"><input type="text" name="Subject" id="Subject" /></td>
        <td bordercolor="#FF3300"><a class="subnavlink">Event Application</a></td>
        <td bordercolor="#FF3300">      
           <%  
           Statement stmt2=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
           String sql2="Select sub_catalog from catalog "; 
           ResultSet rs2=stmt2.executeQuery(sql2);   
           %>
            <select name="Eventapplication" size="1" id="Event Application">
            <option value="Please choose" selected>--please choose--</option>
            <%  
      while(rs2.next()){%>                    
              <option value='<%=rs2.getString("sub_catalog")%>'><%=rs2.getString("sub_catalog")%>
              </option>   
           <% } %>
    <% 
    rs1.close();
    stmt1.close();
    conn.close(); 
    %>     
            </select>
    这个是表单提交页面。没有问题。
    下面的是传递参数,插入值的页面。
    <% String EventNumber=request.getParameter("Eventnumber"); 
       String ReportUser=request.getParameter("Reportuser"); 
       String EmailAddress=request.getParameter("Emailaddress");
       String Subject=request.getParameter("Subject");
       String EventLevel=request.getParameter("Eventlevel");
       String Location=request.getParameter("Location");
       String PhoneNumber=request.getParameter("Phonenumber");
       String EventApplication=request.getParameter("Eventapplication");
       String EventDescription=request.getParameter("input");
    out.println(EventNumber+"+"+EventLevel+"+"+PhoneNumber);  
    %><%
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();  
    }catch(Exception e){
    out.println(e);} String url="jdbc:oracle:thin:@137.200.32.65:1521:oamissid"; 
    String user="aem"; 
    String password="aem"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement();
    String sql="insert into event(Event_Id,LEVEL_ID,SUBJECT,EMAIL) values ('001','3','iE','[email protected]')";
    out.println("Test the insert is ok.");
    int affectedRowCount=stmt.executeUpdate(sql);
    out.println(affectedRowCount);
    stmt.close();
    conn.close();%>
    <% String EventNumber=request.getParameter("Eventnumber"); 
       String ReportUser=request.getParameter("Reportuser"); 
       String EmailAddress=request.getParameter("Emailaddress");
       String Subject=request.getParameter("Subject");
       String EventLevel=request.getParameter("Eventlevel");
       String Location=request.getParameter("Location");
       String PhoneNumber=request.getParameter("Phonenumber");
       String EventApplication=request.getParameter("Eventapplication");
       String EventDescription=request.getParameter("input");
    out.println(EventNumber+"+"+EventLevel+"+"+PhoneNumber);  
    %><%
    try{
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();  
    }catch(Exception e){
    out.println(e);} String url="jdbc:oracle:thin:@137.200.32.65:1521:oamissid"; 
    String user="aem"; 
    String password="aem"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement();
    String sql="insert into event(Event_Id,LEVEL_ID,SUBJECT,EMAIL) values ('001','3','iE','[email protected]')";
    out.println("Test the insert is ok.");
    int affectedRowCount=stmt.executeUpdate(sql);
    out.println(affectedRowCount);
    stmt.close();
    conn.close();%>
      

  4.   

    我知道哪里错误了
    因为我测试的时候是固定值,没有从页面中取。
    两次的操作,event_id这个值是不 能重复的。 数据库是同事建的,这个问题没有注意。
    也怪测试问题,没有直接从参数中取。Eventnumber 是自动获得比较好。