当前位置: 代码迷 >> J2SE >> jdbc链接oracle,查询数据时出错解决方法
  详细解决方案

jdbc链接oracle,查询数据时出错解决方法

热度:103   发布时间:2016-04-23 20:04:05.0
jdbc链接oracle,查询数据时出错
查询s_user表,无论怎么修改查询语句,没有任何结果。换成其他表,却有查询结果(表是由system创建,我也是用system登录的,有查询权限)。rs.next()总是返回false,没有任何查询结果。
s_user数据如下

相关代码如下
public class Login implements userAuthority {

private static Connection conn;
private static Statement pst;
private static ResultSet rs;
private static Statement st;
private static String sql = "select * "
  + "from s_user ";
 // + "where  userkey = '1001' ";

private Login() {
// 禁止创建实例
}
// 测试启用int,返回用户类型,实际应返回一个用户实例
public static int loginSystem(String userId,String password) 
throws NoUserFound_Or_InvalidPassword {

try {
conn = Jdbc.getConnection();
pst = conn.createStatement();

// 开始查询
rs = pst.executeQuery(sql);

// 用户不存在or密码错,没有查询结果
while ( rs.next() != false ){
String r = rs.getString(1);
System.out.println(r); // 简单测试一下
}
// 没有查询结果
throw new NoUserFound_Or_InvalidPassword();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return 0;
}
////////////////////////////////////下面是连接oracle的过程
public class Jdbc {
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "system";
private static String password = "lxr7195023";
private static Connection conn;
private static PreparedStatement ps;
private static ResultSet rs;
private static Statement st;

// private Jdbc(){
// // 禁止创建 class jdbc的实例
// }

public static Connection getConnection(){
try {

Class.forName("oracle.jdbc.driver.OracleDriver");
//通过验证用户名和密码链接数据库
if ( conn == null )
conn = DriverManager.getConnection(url,user,password);
if(conn == null){  
            System.out.println("与oracle数据库连接失败!");  
        }else{  
            System.out.println("与oracle数据库连接成功!");  
        }  
            
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;

}

------解决思路----------------------
引用:
Quote: 引用:

数据库里应该是还有其他的表吧 你看看查询其他的表 是不是也是这样的?

在这个程序写之前,有t_student和t_score两个表,这两个表都查询成功了。程序写了之后,我新建了好几个表,都不能查询、删除、更新暑数据,但是可以插入数据(上述操作是用程序执行的)。
你插入数据之后  有没有提交事务?
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

数据库里应该是还有其他的表吧 你看看查询其他的表 是不是也是这样的?

在这个程序写之前,有t_student和t_score两个表,这两个表都查询成功了。程序写了之后,我新建了好几个表,都不能查询、删除、更新暑数据,但是可以插入数据(上述操作是用程序执行的)。
你插入数据之后  有没有提交事务?

如何提交事物?通过java程序如何提交?

在SQL查询器中输入提交命令 commit; 使更新和插入数据生效,再查询看看。
  相关解决方案