PreparedStatement setString与setInt效果是否一样?

oracle表table1(avarchar2,bnumber,cvarchar2(10));b上建了索引。在java程序中用jdbc的preparedStatement... oracle 表 table1(a varchar2,b number,c varchar2(10));
b上建了索引。

在java程序中用jdbc的preparedStatement来访问table1,
pstmt = con.prepareStatement("select * from table1 where b=?");
1)pstmt.setString(1,'123');
2)pstmt.setInt(1,123);
rs = pstmt.excuteQuery();

1)与2)都可以执行成功,但性能效果是否一样呢?1)是否jdbc驱动转型后再传给oracle,还是oracle会自动转型?1)是否能够用上了索引?

感谢大家!
展开
 我来答
egghead008
2008-03-29 · TA获得超过1164个赞
知道小有建树答主
回答量:1424
采纳率:100%
帮助的人:1398万
展开全部
不一样,你那样做可以,是因为123都是整型的,但如果是不能转换为整型的,(2)就会出错,程序会报错,你可以做个测试,直接在oracle中分别执行上面的语句,比如:select * from table1 where b='123'(1)
select * from table1 where b=123(2)

select * from table1 where b='wew'(3)

如果(1)(3)错,说明你在使用pstmt.setString(1,'123')时是不对,你可以选择pstmt.setInt(1,123); 如果都对,应该都可以使用你用的语句。
百度网友68ebec1
2008-03-30 · TA获得超过757个赞
知道小有建树答主
回答量:832
采纳率:0%
帮助的人:549万
展开全部
要根据你的数据库表的设计来使用set,如果不对于就会报错.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式