(问题的发现)我在自己的机器上程序做的差不多了,而且,调试一遍又一遍了,基本上没有问题!于是拿到服务器上发布,正当兴奋的时候。运行,一下傻眼了,屏幕上竟然都是16进制的代码,不止是汉字,还有数字,英文字母,只要是从数据库提取出来的。我第一想到的是字符转换的问题,能想到的转换方法都套上了,还是一样,在自己的机器上运行一切正常但是发布到服务器上就是乱码。
没辙了,想到会不会是字符集支持的问题什么gb2312,gbk,utf-8(这有点笨了,因为不止是汉字出的问题,就不应该在汉字上下工夫)都试了一遍,还是不好使!开始还以为我tomcat和websphere的问题呢(我本机是用tomcat服务器用的是websphere)到QQjava群里问了一通还是没有结果!
各种搜索工具也用的差不多了,最后在yahoo搜索到一篇《JDBC调用Oracle存储过程中字符串数组获取异常及解决》里边的摘要是:“本文针对使用JDBC调用Oracle存储过程时,当返回结果为字符串数组时会出现与所期望字符串不一致的现象展开讨论并给出了解决方法”
问题的症状跟我的差不多,原因并不一样,因为我用的是Statement (PreparedStatement),并不是用存储过程受里面一句话“Statement对象用于执行不带参数的简单SQL 语句;PreparedStatement对
象用于执行带或不带输入参数的预编译SQL语句;CallableStatement对象用于执行对数据库中存储过程的调用”的启发,
我在处理结果集分页用了ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY,并不是所有的jdbc版本都支持啊。
到狗狗和oracle上查了,终于把它搞定了
总结:开发还是没有脱离,拿来主义,许多事情应该……
还没有脱离基于sql server开发的框框……,想法太惯性了,还是见的少
没辙了,想到会不会是字符集支持的问题什么gb2312,gbk,utf-8(这有点笨了,因为不止是汉字出的问题,就不应该在汉字上下工夫)都试了一遍,还是不好使!开始还以为我tomcat和websphere的问题呢(我本机是用tomcat服务器用的是websphere)到QQjava群里问了一通还是没有结果!
各种搜索工具也用的差不多了,最后在yahoo搜索到一篇《JDBC调用Oracle存储过程中字符串数组获取异常及解决》里边的摘要是:“本文针对使用JDBC调用Oracle存储过程时,当返回结果为字符串数组时会出现与所期望字符串不一致的现象展开讨论并给出了解决方法”
问题的症状跟我的差不多,原因并不一样,因为我用的是Statement (PreparedStatement),并不是用存储过程受里面一句话“Statement对象用于执行不带参数的简单SQL 语句;PreparedStatement对
象用于执行带或不带输入参数的预编译SQL语句;CallableStatement对象用于执行对数据库中存储过程的调用”的启发,
我在处理结果集分页用了ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY,并不是所有的jdbc版本都支持啊。
到狗狗和oracle上查了,终于把它搞定了
总结:开发还是没有脱离,拿来主义,许多事情应该……
还没有脱离基于sql server开发的框框……,想法太惯性了,还是见的少
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}