oracle数据库向来是一个麻烦的数据库,要不它的DBA怎么就那么值钱呢,呵呵。
中文的乱码问题也是一个比较头疼的问题,在odbc的连接中,可以通过设置客户端的字符集(修改注册表)来解决中
文问题。而通过jdbc
的thin方式来连接数据库,就没那么容易了。如果数据库使用的是非中文字符集,往往在处理中
文问题的时候就很头疼。之所以头疼,是因为oracle的驱动没有提供字符集的设置参数,所以在实际使用过程中,程
序系统和数据库系统中字符集不一致的时候,就会带来乱码问题。
通常的做法有两种:
第一种是在程序中,针对中文字符做显式的字符集转换。这种方式是颇不得已而为之的方法,相信大家遇到过很多次
了。
第二种是hack
oracle的驱动程序,在底层直接解决,通过给url加字符集参数,然后在驱动底层进行解析,在涉及
String类型操作的地方,在源字符集和目的字符集做相应转换。这中做法,虽然一劳永逸,但是需要比较深的功力。
另外,反编译别人的代码再做修改,也许不太好吧。不过话又说回来,oracle无情,也不要别怪人无义,^_^。mysql
、sybase、sql
server的驱动都提供了字符集的设置参数,为什么单单oracle没有呢?
所以,对一、二两种办法做个折中,应该是比较好的方案。具体的办法可以如下:
针对oracle驱动调用,做一个代理,需要对ResultSet、Statement、PreparedStatement等接口,在有字符串操作方法的地方,对字符集进行转换。另外,sql中有中文字符,也是需要处理的。
这样,既不要每次都写程序转换,解决一劳永逸的问题,还不影响原有的oracle驱动程序。
第二种已经实现,如果有需要的tx,请留下mail。
分享到:
相关推荐
从远程oracle数据库取数据是乱码,因为远程oracle字符集为AMERICAN_AMERICA.US7ASCII 本地oracle字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 所以是乱码,解决办法请下载文档 多谢 因为要下载其他资源无分 多多...
NULL 博文链接:https://joinyo.iteye.com/blog/1947696
由于历史的原因,早期的oracle没有中文字符集(如oracle6、oracle7、oracle7.1),但有的用户从那时起就使用数据库了, 并用US7ASCII字符集存储了中文,或是有的用户在创建数据库时,不考虑清楚,随意选择一个默认的...
jdbc连接mysql出现了乱码,总结起来就是里面的四个编码方式是一样的时候,就不会乱码了,简之,客户连接数据库返回结果(编码必须一致)。
JDBC连接Oracle数据库常见问题及解决方法
JDBC实现Oracle数据库的增删改查
JDBC连接oracle数据库.doc
JSP+JDBC_真分页(基于Oracle数据库分页)笔记JSP+JDBC_真分页(基于Oracle数据库分页)笔记JSP+JDBC_真分页(基于Oracle数据库分页)笔记
JDBC连接ORACLE数据库 源码
JDBC连接字符串大全 racle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String ...
利用JDBC连接ORACLE数据库; 利用JDBC对ORACLE数据库进行增、删、改和查。
oracle数据库JDBC驱动oracle 10g方便连接oracle10g数据库使用
Oracle连接数据库JDBC驱动包,对于老版本的oracle,连接驱动比较难找比较难找,甲骨文官网下载难以查找旧版JDBC驱动。 压缩包搜集了几个版本的JDBC驱动,适用于Oracle9i 10,11等。
JDBC连接Oracle数据库的代码和编写JDBC的经验
使用JDBC连接Oracle数据库使用JDBC连接Oracle数据库
NULL 博文链接:https://shihuan830619.iteye.com/blog/805971
JDBC连接oracle数据库
如果编程人员要在一个表中查找许多行,结果中的每个行都会查找其他表中的数据,最后,编程人员创建了独立的UPDATE命令来成批地更新第一个表中的数 据。...本文将为大家介绍通过JDBC连接Oracle数据库的十大技巧。
通过JDBC连接oracle数据库的十大技巧
JSP+JDBC_真分页(基于Oracle数据库分页).