关于可循环游标的奇怪问题

DDDuck 2002-04-14 03:07:25
我用原先的默认属性定义statement
0. String strc;
...
1. Statement stmt=con.createStatement();
2. ResultSet rs=stmt.executeQuery(sql);
3. rs.absolute(3);
4. strc=rs.getString(c); //c 为char(1)型(假设值为'1')
5. out.print(strc+"xxx");
结果:1xxx

当我改变statement属性
1.Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
结果:1 xxx
请问此空格从何而来??是怎么回事,谢谢解答!!
...全文
43 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDDuck 2002-05-09
再提前一次,me就死心了
回复
DDDuck 2002-04-21
棘手的问题,有谁能解答呢??!!
回复
DDDuck 2002-04-16
sorry,笔误
不过,操作时没有错误,要不会报错。
看来是没人知道怎么回事了
回复
wjfxiao 2002-04-16
sql语句有错,应该是
sql="select * form table where c= '"+strc+"'";
回复
wjfxiao 2002-04-16
在jsp中那么些肯定不对
应该是:sql="select * form table where c='" + strc+ "'";
在插入是就做一次trim()处理,去处两边的空格。char(1),也加空格,我也不只是什么原因.
回复
littleyy 2002-04-15
你可以在数据库里面把字段类型设置为varchar
回复
wjfxiao 2002-04-15
震中问题很常见,比如char,如果定义为八位,而数据为6位,数据库就会自动补两位,比如,原来是“111111”,在数据库种就是“111111XX”,
在程序中秩序用trim()处理以下即可
回复
DDDuck 2002-04-15
好像是String ,Char类型就会加个空格,大家有没有遇到过类似问题?不是很奇怪吗
回复
DDDuck 2002-04-15
wjfxiao(卧龙) ,littleyy(风笑痴) :
但问题是:数据是char(1) 类型的
取出后也会加空格,而且statement用默认类型是没有这个问题的。为什么改了类型就有这么大的区别??

要改字段类型可能不现实。而且似乎和数据库结构没有关系。如果我在sqlplus中操作:
select * from table where c='1';
结果正确
但在jsp程序中
sql="select * form table where c="+strc ;
则找不到记录

用trim处理当然可以,但字段中本来就有空格也会被删除。怎么判断是数据本来的空格还是所加的空格??
回复
DDDuck 2002-04-14
sql是基于一个表的查询语句,很简单的,这有关系吗??
回复
tyscon 2002-04-14
sql语句是什么?
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告