java ojdbc 还需要装 oracle client 吗,ojdbc连接数据库

这是oracle的bug,请下载oracle 最新的jar,连接地址:

http://download.oracle.com/otn/utilities_drivers/jdbc/11204/ojdbc6.jar

首先,恭喜楼主问题得解,可喜可贺!

其次,感谢楼主解决问题后的分享。

但是我有几点建议想对楼主谏言(不喜勿看,打扰见谅):

第一,从此问题的最终解决来看。楼主的描述实在是不足以让别人更好的帮助你解决问题。首先,你的标题和你的问题就对不上。其次,关于问题描述,最开始你只是把error的stacktrace信息发布出来,这样别人根本就无法很好的帮你判断问题,后来你对描述还更新过一次,加上了表结构和代码,但实际问题是在于oracle的驱动问题,你的描述也没有突出你用的是oracle的这个重点。为了让别人更好的帮助你,望今后把重点信息表述出来,感谢!

第二,对于问题的解决你也没有描述清楚。首先,prepareStatement这个API的文档说明并不能说明oracle驱动的这个bug,对于问题的解决没有实际的帮助。其次,你附带的那个csdn的帖子里面也对这个bug没有任何明确的说明,而且那个帖子最后的一个回复者所述,换驱动并没有解决同样的问题,这样让读者对此bug的描述和解决难免产生质疑,缺乏可信度。虽然我又去stackoverflow确认过了,确实是oracle的jdbc驱动的问题,但是单就此问题的分享的角度,楼主的答案并没有充分体现出分享的价值。为了给大家带来更好的帮助,望楼主以后在回答的时候能给出更权威可信的答案。

ps:我附上stackoverflow对oracle驱动bug的帖子,作为对楼主的补充,供大家参考:http://stackoverflow.com/questions/277744/jdbc-oracle-arrayindexoutofboundsexception

文中还描述了一种workaround的解决方案,请大家参阅。

以上!万谢!大家看过来,这个才是最佳答案^_^谢谢提醒,以后多加注意!这。。。。。这个和8个有什么关系啊,直觉上感觉是你传进去的paras的size根本就不够吧。你调试看一下当时的数据是怎么样的?而且你这标题。。。是怎么回事?你这错误是在save时候的,为什么标题是说getModel的问题?你是说getModel没有给你取到9个属性么?回复

@小兵一枚:呵呵,什么要侮辱,有问题提提怎么了,不要盲目的崇拜!问题原因是oracle的bug!回复

@蚂蚁蚂蚁:不要侮辱强大的JFinal亲莫非你们都是小表!

java.lang.ArrayIndexOutOfBoundsException: 8

下次提问还是先检查下错误再提吧

查了查api,如下:

prepareStatementPreparedStatementprepareStatement(Stringsql,String[]columnNames)throwsSQLException创建一个能返回由给定数组指定的自动生成键的默认PreparedStatement对象。此数组包含目标表中列的名称,而目标表包含应该返回的自动生成键。如果SQL语句不是INSERT语句,或者SQL语言能够返回自动生成的键(这类语句的列表是特定于供应商的),则驱动程序将忽略该数组。带IN参数或不带IN参数的SQL语句都可以被预编辑并存储在PreparedStatement对象中。然后可以使用此对象多次有效地执行该语句。注:为了处理受益于预编译的带参数SQL语句,此方法进行了优化。如果驱动程序支持预编译,则prepareStatement方法将该语句发送给数据库进行预编译。一些驱动程序可能不支持预编译。在这种情况下,执行PreparedStatement对象之前无法将语句发送给数据库。这对用户没有直接影响;但它的确会影响哪些方法将抛出某些SQLException。使用返回的PreparedStatement对象创建的结果集在默认情况下类型为TYPE_FORWARD_ONLY,并带有CONCUR_READ_ONLY并发级别。已创建结果集的可保存性可调用getHoldability()确定。参数:sql-可能包含一个或多个'?'IN参数占位符的SQL语句columnNames-列名称数组,这些名称指示应该从一个或多个插入行中返回的那些列返回:一个包含预编译语句的新PreparedStatement对象,该对象能够返回由给定列名称数组指定的自动生成键抛出:SQLException-如果发生数据库访问错误,或者在关闭的连接上调用此方法SQLFeatureNotSupportedException-如果JDBC驱动程序不支持此方法

嗯嗯,这才是正解吗感谢楼主解决问题后回来分享,此贴应该放在技术分享区哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值