用varchar吧,char就是这样的

解决方案 »

  1.   

    char定长,不够补零
    varchar2 varchar 变长
      

  2.   


    是类型的问题
    用varchar类型就好了
      

  3.   


    char定长,不够补零
    varchar 变长
    比如字段v是个varchar(200)
    当你insert时哪怕给它的值是‘23’
    它的值就是‘23’
    200只是字段v长度的上限
    改成varchar 
      

  4.   

    因为考虑到数据库的性能,写成char,这是一个折衷的办法.我想知道的是如何解决问题2.就是在不变char的条件下.
      

  5.   

    同意楼上的,当然你也可以在sql语句里加上去括号的函数,好像是这样,具体你自己去查,呵呵:
       select * from user where rtrim(name) = ?
    rtrim 就是去右边的空格,ltrim就是去左边的空格!
      

  6.   

    to phoenix_zd(天马行空) :那样写我知道,不过觉得太麻烦.用createStatement方式没问题,不过用prepareStatement方式就不行了.我原来就是用prepareStatement方式,想不通为什么
    为什么用prepareStatement方式不行.
      

  7.   

    搂主真是太……我建议你把参数补成15位如:
    while(str.length<15) str+=" ";
    ps.setString( 1 , str );