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

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
请问此空格从何而来??是怎么回事,谢谢解答!!
...全文
84 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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语句是什么?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧