用JAVA连接ORACLE数据库查询不到数据

gaohaibox 2010-04-12 12:31:15
程序源代码如下:
package conn;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class CConnOracle {
/**
* @param args
*/
public static void main(String[] args) {
try {
int iStuId = 0;
String sStuName = null;
String sStuClass = null;
String strSql = "select col_stu_id, col_stu_name, col_stu_class from table_student";
Connection objConn = null;

Driver objDriver = (Driver)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

Properties objProp = new Properties();
objProp.put("user", "tester");
objProp.put("password", "tester");

objConn = objDriver.connect("jdbc:oracle:thin:@127.0.0.1:1521:testdb", objProp);
objConn.setAutoCommit(false);

PreparedStatement objStmt = objConn.prepareStatement(strSql,
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet objRS = objStmt.executeQuery();
while(objRS.next())
{
iStuId = objRS.getInt("col_stu_id");
sStuName = objRS.getString("col_stu_name");
sStuClass = objRS.getString("col_stu_class");
System.out.println(iStuId + "---" + sStuName + "---" + sStuClass);
}

if(null != objRS)
{
objRS.close();
}
if(null != objStmt)
{
objStmt.close();
}
if(null != objConn)
{
objConn.close();
}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}





问题:查询不到结果,单步跟踪,发现执行到while时未进入循环体

说明:初学JAVA,尝试了一下,但是失败了,求解!
...全文
742 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaohaibox 2010-04-12
  • 打赏
  • 举报
回复
我发现一个现象:我把我那段代码放到同事机器上可以查询到数据,在我的机器上就没有,是不是跟我的机器的配置有关系???
soooooga 2010-04-12
  • 打赏
  • 举报
回复

import java.sql.*;

public class JDBCExample {

public static void main(String[] args) {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@127.0.0.1:1521:testdb";
String sql = "select col_stu_id, col_stu_name, col_stu_class from table_student";
String username = "tester";
String password = "tester";
int iStuId = 0;
String sStuName = null;
String sStuClass = null;
try {
Class.forName(driver);
// new oracle.jdbc.driver.OracleDriver();
Connection con = DriverManager.getConnection(url, username,
password);
PreparedStatement pstmt = con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
iStuId = objRS.getInt("col_stu_id");
sStuName = objRS.getString("col_stu_name");
sStuClass = objRS.getString("col_stu_class");
System.out.println(iStuId + "---" + sStuName + "---" + sStuClass);
}
rs.close();
pstmt.close();
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

}
gaohaibox 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 powerchuangwai 的回复:]
你的SQL语句有没有问题?
[/Quote]

SQL语句没有问题,在PL/SQLDEVELOPER中可以查询到数据
SADSDSDDASDASD 2010-04-12
  • 打赏
  • 举报
回复
帮你顶起 我没用过Oracle
powerchuangwai 2010-04-12
  • 打赏
  • 举报
回复
你的SQL语句有没有问题?
gaohaibox 2010-04-12
  • 打赏
  • 举报
回复
试过了,提示“用尽的ResultSet”
justchenjie 2010-04-12
  • 打赏
  • 举报
回复
你用if试试,这个好像是游标的问题。它的当前指向时空的。
niulin 2010-04-12
  • 打赏
  • 举报
回复
把objConn.setAutoCommit(false);去掉

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧