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

ResultSet 获取表中指定列的值有关问题 困惑啊 请指点

2012-01-26 
ResultSet 获取表中指定列的值问题 困惑啊 请指点packagemyprojectimportjava.sql.Connectionimportjava

ResultSet 获取表中指定列的值问题 困惑啊 请指点
package   myproject;
import   java.sql.Connection;
import   java.sql.DriverManager;
import   java.sql.ResultSet;
import   java.sql.SQLException;
public   class   Main   {


public   static   void   main(String[]   args)   {
  java.sql.Statement   stm=null;  
    String   SQLStatement   =   " ";
    ResultSet   rs=null;
    String   customer= " ";
try   {
            //   Load   the   driver   class
            Class.forName( "oracle.jdbc.driver.OracleDriver ");

            //   Define   the   data   source   for   the   driver
            String   sourceURL   =   "jdbc:oracle:thin:@ "+ConfigRead.getDB_ip()+ ": "+ConfigRead.getDB_port()+ ": "+ConfigRead.getDB_name();

            //   Create   a   connection   through   the   DriverManager  
            Connection   databaseConnection   =   DriverManager.getConnection(sourceURL,ConfigRead.getDB_user(),ConfigRead.getDB_psw());
              System.out.println( "Connection   is:   "+databaseConnection);
             
              stm=databaseConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
             
        }   catch(ClassNotFoundException   cnfe)
        {
            System.err.println(cnfe);
        }
        catch(SQLException   sqle)
        {
            System.err.println(sqle);
        }
       
        //查询客户信息表CUSTNO   获取一条客户信息记录
        SQLStatement= "select   custno   from   custno   where   cust_flag   = '0 '   and   rownum <=10 ";                
        try{  
        rs=stm.executeQuery(SQLStatement);
       
        System.out.println( "no   problem ");

        customer=rs.getString( "CUSTNO ");

        System.out.println(customer);
}  
                catch   (SQLException   e)
{
e.printStackTrace();
}
               
             
}

}

运行结果   :
Connection   is:   oracle.jdbc.driver.OracleConnection@197d257
no   problem
java.sql.SQLException:   用尽的Resultset
at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)


at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at   oracle.jdbc.driver.ScrollableResultSet.getOracleObject(ScrollableResultSet.java:655)
at   oracle.jdbc.driver.ScrollableResultSet.getString(ScrollableResultSet.java:680)
at   oracle.jdbc.driver.UpdatableResultSet.getString(UpdatableResultSet.java:359)
at   oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1482)
at   myproject.Main.main(Main.java:41)
程序连接没有问题     System.out.println( "Connection   is:   "+databaseConnection);到这也执行了  
执行     到rs=stm.executeQuery(SQLStatement);
       
        System.out.println( "no   problem ");
也没问题  
    当我取列名为CUSTNO     的字符型字段的值时候报以上错误     customer=rs.getString( "CUSTNO ");

请教高手出错在上面地方?

[解决办法]
没有回收rs
[解决办法]
customer=rs.getString( "CUSTNO ");应该为
while(rs.next){
customer=rs.getString( "CUSTNO ");
}
[解决办法]
customer=rs.getString( "CUSTNO ");

你没有调用到next()。

你应该这样判断一下:

if(rs.next())
{
customer=rs.getString( "CUSTNO ");
}

[解决办法]
select custno from custno where cust_flag = '0 ' and rownum <=10 ";
你的表名和列名是一样的啊????
应该是你的sql语句没有取到数据,符合条件的记录为0?
[解决办法]
getString()函数是:以 Java 编程语言中 String 的形式检索此 ResultSet 对象的当前行中指定列的值。
ResultSet在最初指向第一行之前。要调用next()函数
[解决办法]
while(rs.next){
customer=rs.getString( "CUSTNO ");
}

热点排行