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");请教高手出错在上面地方?
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");请教高手出错在上面地方?
while(rs.next){
customer=rs.getString("CUSTNO");
}
if(rs.next){
customer=rs.getString("CUSTNO");
}
{
customer=rs.getString("CUSTNO");
}
你的表名和列名是一样的啊????
应该是你的sql语句没有取到数据,符合条件的记录为0?
==========================================
next
boolean next()
throws SQLException将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
如果开启了对当前行的输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet 对象的警告链。
返回:
如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
ResultSet在最初指向第一行之前。要调用next()函数
customer=rs.getString("CUSTNO");
}