您的位置:程序门 -> java -> web 开发



一个jsp访问数据库的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个jsp访问数据库的问题
发表于:2007-07-23 13:41:22 楼主
文件testdb.jsp的源代码:
<%@   page   contenttype= "text/html;   charset=gb2312 "   language= "java "%>
<%@page   import= "java.sql.*,javax.sql.*,javax.naming.*,java.io.* "%>

<html>
<head>
<title>
</title>
</head>
<body>
<jsp:usebean   id= "db "   scope= "application "   class= "db.db "   />
<%
string   sql   =   "select   pointid,road   from   gx_dsx ";
resultset   rs   =   db.EXECutequery(sql);
rs.last();
//out.print(rs.gettype()+ " <br> ");
while(rs.next()){
        out.print(rs.getstring( "pointid "));
        out.print( " <br> ");
}
%>
</body>
</html>

其中的javabean,db的源代码:
package   db;

import   java.sql.*;
import   javax.sql.*;
import   javax.naming.*;
import   java.util.*;

public   class   db
{
        datasource   ds=null;
        context   initctx=null;
        context   ctx=null;
        connection   conn   =null;

        public   db(){
               
                try{
                        initctx   =   new   initialcontext();
                        ctx   =   (context)   initctx.lookup( "java:comp/env ");
                        ds   =   (datasource)   ctx.lookup( "oracledbpool ");
                        conn   =   ds.getconnection();
                }
                catch   (sqlexception   e)   {}
                catch   (namingexception   e)   {}
          }

          protected   void   finalize(   ){
                try{conn.close();}catch(exception   e){}
          }  
         
          //查询记录
          public   resultset   EXECutequery(string   sql){
               
                resultset   rs   =   null;
                try{
                        statement   st   =   conn.createstatement(resultset.type_scroll_insensitive,   resultset.concur_read_only);
                        rs   =   st.EXECutequery(sql);
                }
                catch(sqlexception   e){}

                return   rs;
          }
         
          //修改记录
          public   int   EXECuteupdate(string   sql){
                int   rows   =   0;
                resultset   rs   =   null;
                try{
                        statement   st   =   conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);
                        rows   =   st.EXECuteupdate(sql);
                }
                catch(sqlexception   e){}

                return   rows;
          }

}

在tomcat下运行testdb.jsp(配置正确),报错:“对只转发结果集的无效操作:   last”
然后我在testdb.jsp中加入这句话out.print(rs.gettype()+ " <br> ");
出来的结果是1003,查找jdk文档,对应的类型是resultset.type_forward_only
可是我在db.java中明明用的是resultset.type_scroll_insensitive,请问为什么会这样呢?
发表于:2007-07-23 13:56:111楼 得分:0
代码好像是对的,以前记得哪里看过,似乎和jdbc有点点关系
你先确认是否编译过,然后看看jdbc吧
发表于:2007-07-23 13:56:242楼 得分:0
http://www.cnblogs.com/mingal/archive/2007/03/07/666373.aspx
发表于:2007-07-23 13:58:343楼 得分:0
1.last是jdbc2.0的内容,看看你的jdbc是否正确,
2.数据库是否支持last操作



快速检索

最新资讯
热门点击