首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个jsp访问数据库的有关问题

2012-01-23 
一个jsp访问数据库的问题文件testdb.jsp的源代码:%@pagecontentType text/htmlcharsetgb2312 langua

一个jsp访问数据库的问题
文件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,请问为什么会这样呢?


[解决办法]
代码好像是对的,以前记得哪里看过,似乎和jdbc有点点关系
你先确认是否编译过,然后看看jdbc吧

热点排行