2 baidu 36199042 baidu_36199042 于 2016.09.21 14:04 提问

Java连接Access数据库问题

程序运行结果为sun.jdbc.odbc.JdbcOdbcResultSet@16bf9ce,该怎样解决,求赐教

2个回答

niaonao
niaonao   Rxr 2016.09.21 14:16

这个问题类似之前遇到过的问题。好像见过
@16bf9ce
这说明已经获取到数据了,并不是连接数据库失败,获取数据空指针异常。
应该是获取对象时语句错误,获取的不是数据记录,获取的对象错误

查询结果的处理的语句处你检查一下

baidu_36199042
baidu_36199042 回复niaonao: 那怎么修改,谢谢
大约一年之前 回复
baidu_36199042
baidu_36199042 回复niaonao: 嗯
大约一年之前 回复
niaonao
niaonao 那 rs 是获取到的结果对象(ResultSet 类型),不是获取的数据库对象
大约一年之前 回复
niaonao
niaonao 回复baidu_36199042: sun.jdbc.odbc.JdbcOdbcResultSet@16bf9ce 是System.out.print(rs) 的结果?
大约一年之前 回复
baidu_36199042
baidu_36199042 Connection con =DriverManager.getConnection("jdbc:odbc:Library","wang","123456"); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs=stmt.executeQuery("Select * from Book where name='"+ name+"'"); System.out.print(rs); if(rs.next()){ String sql= "Delete * from Book where name='"+name+"'"; stmt.executeUpdate(sql);这是源代码,我没看出来什么错误
大约一年之前 回复
niaonao
niaonao   Rxr 2016.09.21 15:00
        Connection con =DriverManager.getConnection("jdbc:odbc:Library","wang","123456"); 
        Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("Select * from Book where name='"+ name+"'"); 
System.out.print(rs); 
while(rs.next())  //while 循环获取所有的结果,避免有多个结果时只获取了一个结果
{ 
    //String sql= "Delete * from Book where name='"+name+"'";   
    //这一句话没必要,你这个查询结果 rs ,
    //的查询条件就是 name = 你那个 (String)name,
    //删除语句写在这个查询结果中,就不必再写一遍了,结果都一定是那个name下的
    //stmt.executeUpdate(sql);
    /**
     * rs 已经是你查询语句  "Select * from Book where name='"+ name+"'" 的结果了
     */
    String name = rs.getString("name");  //获取数据库中对应字段的数据,比如有name age gender 的话,看你的是什么的.
    int age = Integer.parseInt(rs.getString("age"));
    String gender = rs.getString("gender");
    System.out.print("名字|性别|年龄 :"+name+"|"+gender+"|"+age);
}

你的语句没错误
baidu_36199042
baidu_36199042 回复niaonao: 我做的系统是用的图形用户界面设计的,输出结果是一个窗口
大约一年之前 回复
baidu_36199042
baidu_36199042 回复niaonao: 嗯
大约一年之前 回复
niaonao
niaonao 不是让你输出这个的,是让你获取 字段对应的数据的,然后声明一个对象,给对象赋这些获取到的值,就是一个完整的查询对象了
大约一年之前 回复
niaonao
niaonao System.out.print(rs) 的结果 还是 sun.jdbc.odbc.JdbcOdbcResultSet@16bf9ce ?
大约一年之前 回复
baidu_36199042
baidu_36199042 还是一样的结果
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!