网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ORACLE > 正文
Oracle 驱动版本引起的显示字段奇怪编码问题
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/01
下载{$ArticleTitle}原创论文样式

1 2 3 4 下一页

  开门见山把产生问题的原因的解决办法列出来。

  我们一般获取 Statement 都是通过 conn.createStatement() 方法,很少传递参数给它的,所以其内置属性都取默认值的,取记录只用 while(rs.next()) 逐个取即可。然而有一个需求(Oracle 8i 之前的版本不支持子查询排序,所以无法用 rownum 取分页记录) 是通过如下代码来得到 Statement:

Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

  由它获得的结果集可以 rs.absolute(n) 直接跳到第 n 行记录来获得值,但就这个用法出问题了,取出来的中文出现乱码了,如 "无效",变成了 "0xE697A0E69588"

  原因是我用的 Oracle 驱动版本太低了,是 8.1.6 的驱动版本,只要换成 8.1.7 或更高的驱动版本就可以正常取得中文字段值了。

  问题及解决就上面那几行描述,当问题解决后再回望一下,确是如此之简单。OK,你可以跳到其他你喜爱的页面了。倘若有兴趣的话,下话是我记述的这一问题产生及解决的整个历程。在如此简单的解决办法面前似乎不值的长提,但毕竟颇费了一番周折,仅此。

  公司有一个 Web 项目是用的 Oracle 驱动 classes12.zip 自带的连接池实现 oracle.JDBC.pool.OracleConnectionCacheImpl,因为数据库是 Oracle 8.0.5,还不是 8i,所以不支持子查询排序,当有 order by 时便不能用 rownum 来分页查询

  原来在处理有排序的记录集的分页显示是把所有记录全部 next 成一个一个对象放在 List 中,然后根据页面要求显示的记录段从 list 中取子集。这无疑效率是非常的低下,每一次翻页都是很考验人耐心的,河量的数据也将是不可思义的。用代码演示就是:

(责任编辑:admin)

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号