要插入的字符串没问题。三个字符。 
要插入的字段是vchar 类型的,10个字符。 
但插入后就变成三个字符加上七个空格。不够十个会自动补齐。 
用statement拼语句就没有问题。 
加空格也没用。 
我用的netbean 5.5 
代码: 
PreparedStatement pstmt = con.prepareStatement("insert into Member( MemberName , MemberPassword , MemberDetail ) values( ? , ? , ? ) " ); 
pstmt.setString(1,name); 
pstmt.setString(2,password); 
pstmt.setString(3,detail); 
pstmt.executeUpdate();
问题补充:谢谢一楼,肯定不是源数据有空格。我用 
pstmt.setString(1,"Hello"); 
这样也不行。

解决方案 »

  1.   

    数据库德vchar可以装10个字符就让它装10个字符嘛,你重数据库当中提取出数据的时候把提取出来的字符串的空格去掉就可以了String str.trim();
      

  2.   

    这个与jdbc没半点关系,就算你用ado.net,hibernate...都一样。
    是你数据库数据类型用错了,你就不要搞char型的撒,改用varchar(10)char(10)是啥意思?你自己都说了,不够10个长度自动在后面补充空格。varchar(10)啥意思?你的数据只有5个字符它就放5个字符。
      

  3.   

    mysql上有char和varchar,我不知道有没有vchar。
    char数据类型是固定列宽而varchar是可变列宽。
    举个简单的例子char(10),如果给的数据长度不够10那么就会在后面自动添加空格填补空位,
    而varchar(10)则不会产出这个效果,你给多少数据长度就是多少,只要不超出范围就行。
    不知道我这样解释能不能帮到你。
      

  4.   

    要插入的字段是vchar   类型的,10个字符。   
    但插入后就变成三个字符加上七个空格。不够十个会自动补齐。   ...