求教:
oracle数据库插入数据id number(8);
用jdbc PreparedStatement stmt 
int id = user.getId(); 或者id = 1234;
stmt.setInt(1,id);//会报异常 Long列只能对应long值
但是用stmt.setInt(1,1234); 直接数值就可以
没用id做为变量
id = 1234 插也不可以
请问这是怎么回事,怎么改呢,

解决方案 »

  1.   

    你的id是个int类型的,数据库字段是number,java里面要对应用long类型的。
      

  2.   

    long id = 1234L;
    stmt.setLong(1,id)
    也不行..
    大家再帮我想想
      

  3.   

    int id = user.getId();  user是什么?
      

  4.   


    应该不是这个原因。楼主已经说了setInt可以。
    int id = user.getId(); 或者id = 1234;这个getId()的返回类型是什么。stmt.setInt(1,id);//会报异常 Long列只能对应long值这个具体的异常信息贴出来吧。
      

  5.   

    lz先检查一下id是否时自增主键,个人比较认同时主键引起的问题
      

  6.   

    是编码和包的问题,oracle.rar
    谢谢大家了