pstmt.setString(1, userId); 
换成int型的试试

解决方案 »

  1.   

    user.setUserId(rs.getString("user_id"));
    user.setUserName(rs.getString("user_name"));
    user.setPassword(rs.getString("password"));
    user.setContactTel(rs.getString("contact_tel"));
    user.setEmail(rs.getString("email"));
    user.setCreateDate(rs.getTimestamp("create_date")); oracle是有点怪怪的哈,把你这里的双引号的字段名,全部改成大写。(oracle内部大小写不分,但外面调用的时候,都得用大写)
    或者按表结构,用1,2,3,4来代替。
      

  2.   

    报什么错吗?先把create_date那个字段的不取,看看有没有值?
      

  3.   

    catch(SQLException e) {
    e.printStackTrace();
    }
    下面再加个,说不定不是数据库的错,是你setTimestamp出现格式错误。
    catch(Exception e1) {
    e1.printStackTrace();
    }
      

  4.   

    user.setCreateDate(rs.getTimestamp("create_date"));   改成
    user.setCreateDate(rs.getDate("create_date"));试试。
      

  5.   

    还有就是你数据库ID为什么要写成varchar呢
      

  6.   

    没查询到吧 你在里面new了一个user 赋值空 user也不是空啊?
      

  7.   

    我看了,if (rs.next()) { }很不好,因为不知道能否查到结果,如果未查到结果,很容易抛出空指针异常,最好改成 if(rs.hasNext()){rs.next();}这样会好一点,而且便于测试,比如,我要测试有没有在数据库中查到值,就可以通过if(rs.hasNext()){System.out.println("a");rs.next();}来测试,如果输出a则说明查到值了,如果没有任何输出,则说明没有查到值,那就是id的问题了
      

  8.   

    谢谢 大家好心帮忙哈   这么一个小小的错误 用了两天时间 哎~ 还是我学艺不精啊 
    还有那个 小妹的提示 启发了我  优化代码 应该是 if 改写成while循环
    有值 System.out.println("a"); 打印a   没有接受到值的话就是id的问题
    确实是id的问题 哈哈 
    错误的根源在这里   create table t_user(user_id char(10) primary key, 建表语句
    听了韩顺平老师的视频给我误导了 user_id 用char类型 可以正常创建表 提高查询速度
    但你这样 用字符串传值 查不到结果    所以给user_id类型 改成varchar2  就一切正常了 
      

  9.   

    user_id char(10) primary key,
    一般还是用 varchar的,不然如果 user_id的个数少于10的话,很多数据库会自动在其后面添加空格
      

  10.   

    ID最好用VARCHER2(33),因为haibernate它会自动生成一个32位的ID,还有一位用来存结束字符,所以你现在最好有这个习惯
      

  11.   

      
      这个问题很简单啊.if (rs.next());if 就不能用在这里的,假设我第一次查询没有查询到的话,那他就不是跳过去了,返回就是一个空的值.所以这里用while(rs.next()),就会循环从ResultSet中读取, 所以以后做程序就一定要仔细啦 ;以前我也是常犯小错误的.呵呵
      

  12.   

    我感觉如果数据库中只有一个我们所需要的数据的话,就可以用if(rs.next()),比如在核对用户名和密码是否正确的时候!
      

  13.   


    if怎么不能用在这里啦?
      你查询时带where条件怎么都只有一条记录
    那你还用while干什么了