Java中查询oracle数据库表中的数到while(rs.next())这里就不进去了?我在其它电脑上面都是可以查到啊?
publicclassConnectDB{------------连接数据库----------privatestaticStringDriver="oracle.jdb...
public class ConnectDB {
------------连接数据库----------
private static String Driver="oracle.jdbc.driver.OracleDriver";
private static String Url="jdbc:oracle:thin:@localhost:1521:db01";
private static String Name="zhb";
private static String Pwd="zhb";
public Connection getConn(){
Connection conn=null;
try{
Class.forName(Driver);
conn=DriverManager.getConnection(Url, Name, Pwd);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public void getAllClose(Connection conn,PreparedStatement stm,ResultSet rs){
try{
if(conn!=null){
if(!conn.isClosed()){
conn.close();
}
}
if(stm!=null){
stm.close();
}
if(rs!=null){
rs.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
--------------查询数据的方法
public class LoginDaoImpl extends ConnectDB implements LoginDao{
private Connection conn=null;
private PreparedStatement stm=null;
private ResultSet rs=null;
public UserBean getUserByName(String uname){
UserBean user=new UserBean();
String sql="select * from Users where uname='"+uname+"'";
try{
conn=this.getConn();
stm=conn.prepareStatement(sql);
rs=stm.executeQuery();
while(rs.next()){
user.setId(rs.getLong("id"));
user.setUname(rs.getString("uname"));
user.setUpass(rs.getString("upass"));
}
}
catch(
Exception e){
e.printStackTrace();
}
finally{
this.getAllClose(conn, stm, rs);
}
return user;
}
数据和数据库客户端都好好的!在我电脑上面运行总是到while(rs.next())那里就直接跳过去了,但是今天我到公司电脑上面一运行就又好了,昨天还报错了呢,真奇怪,难道tomcat时间用长了真的会自动报错吗? 展开
------------连接数据库----------
private static String Driver="oracle.jdbc.driver.OracleDriver";
private static String Url="jdbc:oracle:thin:@localhost:1521:db01";
private static String Name="zhb";
private static String Pwd="zhb";
public Connection getConn(){
Connection conn=null;
try{
Class.forName(Driver);
conn=DriverManager.getConnection(Url, Name, Pwd);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public void getAllClose(Connection conn,PreparedStatement stm,ResultSet rs){
try{
if(conn!=null){
if(!conn.isClosed()){
conn.close();
}
}
if(stm!=null){
stm.close();
}
if(rs!=null){
rs.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
--------------查询数据的方法
public class LoginDaoImpl extends ConnectDB implements LoginDao{
private Connection conn=null;
private PreparedStatement stm=null;
private ResultSet rs=null;
public UserBean getUserByName(String uname){
UserBean user=new UserBean();
String sql="select * from Users where uname='"+uname+"'";
try{
conn=this.getConn();
stm=conn.prepareStatement(sql);
rs=stm.executeQuery();
while(rs.next()){
user.setId(rs.getLong("id"));
user.setUname(rs.getString("uname"));
user.setUpass(rs.getString("upass"));
}
}
catch(
Exception e){
e.printStackTrace();
}
finally{
this.getAllClose(conn, stm, rs);
}
return user;
}
数据和数据库客户端都好好的!在我电脑上面运行总是到while(rs.next())那里就直接跳过去了,但是今天我到公司电脑上面一运行就又好了,昨天还报错了呢,真奇怪,难道tomcat时间用长了真的会自动报错吗? 展开
4个回答
展开全部
你在执行rs.next之前首先确定它是否已经被赋值,是否前面出错导致它还是null ,
oracle连接好像需要安装客户端和配置好客户端,你是否已经安装和配置Oracle客户端!
oracle连接好像需要安装客户端和配置好客户端,你是否已经安装和配置Oracle客户端!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那是因为你的数据库里面没有数据, 当让就返回不到啦!! 其他电脑上面数据库有数据所以就查到了嘛...
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我今天也遇到了这个问题,可以检查Oracle数据库中的数据是否有手动提交,因为没有commit的话,jdbc是获取不到的~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询