public class Conn{
private DataSource ds = null;
public Conn(){}
public Connection getConnection(){
Connection connection=null;
try{
Context ctx = new InitialContext();
ds = (DataSource)ctx.lookup("jdbc/zdxt");
connection=ds.getConnection();
}catch(Exception e){
e.getMessage();
}
return connection;
}
/**
* 查询
* @param sql String
* @return ResultSet
*/
public ResultSet executeQuery(String sql){
ResultSet rs=null;
Connection conn=null;
try{
conn=getConnection();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(conn != null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
return rs;
}
/**
* 更新
* @param sql String
* @return int
*/
public int executeUpdate(String sql){
int i=0;
Connection conn=null;
try{
conn=getConnection();
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
i=stmt.executeUpdate(sql);
}catch(SQLException e){
e.printStackTrace();
}finally{
try{
if(conn != null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
return i;
}
}

解决方案 »

  1.   

    直接用print会遮盖错误
    还是按照我上面的写法写吧然后把错误码贴上来
    就可以帮你解决了
      

  2.   

    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
          i=stmt.executeUpdate(sql);
    是不是CONCUR_READ_ONLY,而你却使用了update语句所导致的。
    具体的还要把错误帖出来才能分析。
      

  3.   

    改成 ds = (DataSource) ctx.lookup("java:comp/env/jdbc/zdxt");
      

  4.   

    应该是没有关闭Statement和resultset的问题。
      

  5.   

    错误:
    java.lang.NullPointerException
            at com.zht.framework.Authority.authority(Authority.java:28)
            at _jasper._xsdwgl._show_pyc_jsp._jspService(_show_pyc_jsp.java:127)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at com.iplanet.ias.web.jsp.JspServlet$JspServletWrapper.service(JspServl
    et.java:552)
            at com.iplanet.ias.web.jsp.JspServlet.serviceJspFile(JspServlet.java:368
    )
            at com.iplanet.ias.web.jsp.JspServlet.service(JspServlet.java:287)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at org.apache.catalina.core.StandardWrapperValve.invokeServletService(St
    andardWrapperValve.java:720)
            at org.apache.catalina.core.StandardWrapperValve.access$000(StandardWrap
    perValve.java:118)
            at org.apache.catalina.core.StandardWrapperValve$1.run(StandardWrapperVa
    lve.java:278)
            at java.security.AccessController.doPrivileged(Native Method)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:274)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:505)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:212)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:505)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:203)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
    a:505)
            at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProce
    ssor.java:158)
            at com.iplanet.ias.web.WebContainer.service(WebContainer.java:598)WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve
    .invoke(StandardWrapperValve.java:274)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.inv
    oke(StandardPipeline.java:505)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardContextValve
    .invoke(StandardContextValve.java:212)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.inv
    oke(StandardPipeline.java:505)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardHostValve.in
    voke(StandardHostValve.java:203)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.inv
    oke(StandardPipeline.java:505)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.connector.nsapi.NSAPIProc
    essor.process(NSAPIProcessor.java:158)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.WebContainer.service(WebC
    ontainer.java:598)
    WARNING: CORE3283: stderr: java.sql.SQLException: ORA-01000: 超出打开游标的最大

    WARNING: CORE3283: stderr:      at oracle.jdbc.dbaccess.DBError.throwSqlExceptio
    n(DBError.java)
    WARNING: CORE3283: stderr:      at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.j
    ava)
    WARNING: CORE3283: stderr:      at oracle.jdbc.ttc7.Oopen.receive(Oopen.java)
    WARNING: CORE3283: stderr:      at oracle.jdbc.ttc7.TTC7Protocol.open(TTC7Protoc
    ol.java)
    WARNING: CORE3283: stderr:      at oracle.jdbc.driver.OracleStatement.<init>(Ora
    cleStatement.java)
    WARNING: CORE3283: stderr:      at oracle.jdbc.driver.OracleStatement.<init>(Ora
    cleStatement.java)
    WARNING: CORE3283: stderr:      at oracle.jdbc.driver.OracleConnection.privateCr
    eateStatement(OracleConnection.java)
    WARNING: CORE3283: stderr:      at oracle.jdbc.driver.OracleConnection.createSta
    tement(OracleConnection.java)
    WARNING: CORE3283: stderr:      at com.sun.enterprise.resource.JdbcXAConnection$
    JdbcConnection.createStatement(JdbcXAConnection.java:568)
    WARNING: CORE3283: stderr:      at com.zht.DBConn.Conn.executeQuery(Conn.java:33
    )
    WARNING: CORE3283: stderr:      at com.zht.framework.Authority.authority(Authori
    ty.java:26)
    WARNING: CORE3283: stderr:      at _jasper._xsdwgl._show_pyc_jsp._jspService(_sh
    ow_pyc_jsp.java:127)
    WARNING: CORE3283: stderr:      at org.apache.jasper.runtime.HttpJspBase.service
    (HttpJspBase.java:107)
    WARNING: CORE3283: stderr:      at javax.servlet.http.HttpServlet.service(HttpSe
    rvlet.java:853)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.jsp.JspServlet$JspServlet
    Wrapper.service(JspServlet.java:552)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.jsp.JspServlet.serviceJsp
    File(JspServlet.java:368)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.jsp.JspServlet.service(Js
    pServlet.java:287)
    WARNING: CORE3283: stderr:      at javax.servlet.http.HttpServlet.service(HttpSe
    rvlet.java:853)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve
    .invokeServletService(StandardWrapperValve.java:720)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve
    .access$000(StandardWrapperValve.java:118)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve
    $1.run(StandardWrapperValve.java:278)
    WARNING: CORE3283: stderr:      at java.security.AccessController.doPrivileged(N
    ative Method)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardWrapperValve
    .invoke(StandardWrapperValve.java:274)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.inv
    oke(StandardPipeline.java:505)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardContextValve
    .invoke(StandardContextValve.java:212)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.inv
    oke(StandardPipeline.java:505)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardHostValve.in
    voke(StandardHostValve.java:203)
    WARNING: CORE3283: stderr:      at org.apache.catalina.core.StandardPipeline.inv
    oke(StandardPipeline.java:505)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.connector.nsapi.NSAPIProc
    essor.process(NSAPIProcessor.java:158)
    WARNING: CORE3283: stderr:      at com.iplanet.ias.web.WebContainer.service(WebC
    ontainer.java:598)
      

  6.   

    你在执行了executeQuery之后没有关闭游标,导致游标积累过多。在你调用这个程序的页面中把游标关闭就可以了。rs.close();
      

  7.   

    只是把页面里的ResultSet对象都关闭就可以了吗?
      

  8.   

    把ResultSet对象都关闭了,可以还是不行啊!!!!!!!!!!!