java oracle中文乱码怎么办
java oracle中文乱码的解决方法:1、将读到的字符串s,则进行纯手工转码,代码为【new String(s.getByte(A), B)】;2、使用druid对各种数据库驱动做了一层统一的封装,编码转换。
【相关学习推荐:java基础教程】
java oracle中文乱码的解决方法:
转码方法
当Java读Oracle遇到中文乱码时,我们就需要进行转码。转码的方法很多,我接触过的有以下几种。
1、纯手工转码
将读到的字符串s进行转码,如:new String(s.getByte(A), B)
2、Druid
druid是阿里巴巴自己开发的一个驱动,它其实是对各种数据库驱动做了一层统一的封装,添加日志、告警、编码转换等功能。配置方式如下:
<bean id="opensqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.alibaba.china.jdbc.SimpleDriver" /> <property name="url" value="jdbc:oracle:thin:@10.20.130.210:1521:dwtest" /> <property name="username" value="etl" /> <property name="password" value="etl" /> <property name="connectionProperties"><value>serverEncoding=ISO-8859-1;clientEncoding=GBK;defaultRowPrefetch=50;bigStringTryClob=true</value></property> </bean>
其中connectionProperties中包含serverEncoding、clientEncoding两个属性。在Java读取到数据后,如果发现serverEncoding、clientEncoding不同,则会自动进行如下编码转换。
new String(s.getByte(serverEncoding), clientEncoding)
3、weblade ibatis callback
它采用了如下注册ibatis callback的方式。
<bean id="sqlMapExecutorDelegate" class="com.asc.alibaba.dao.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate"> <property name="mappedStatementStrategy" ref="mappedStatementStrategy" /> <property name="handlerList"> <list> <ref bean="stringHandler" /> <!-- <ref bean="objectHandler" />--> </list> </property> </bean> <bean id="stringHandler" class="com.asc.alibaba.dao.ibatis.handler.TypeHandlerAdapter"> <property name="javaType" value="java.lang.String" /> <property name="handlerCallback" ref="stringTypeHandlerCallback" /> </bean>
使得在默认情况下,程序会把ibatis获取到的String进行如下编码转换:
new String(s.getByte(“ISO-8859-1”), “GBK”)
该二方库引入的方式如下:
<dependency> <groupId>com.alibaba.asc.shared</groupId> <artifactId>weblade.core.ibatisext</artifactId> <version>1.2.0-SNAPSHOT</version> </dependency>
Ibatis callback隐藏了编码转换的过程,但问题是它对项目中所有的数据源生效。使得无法同时透明地支持需要转码和无需转码的数据源。
相关推荐:编程视频课程
以上是java oracle中文乱码怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

要查询 Oracle 表空间大小,请遵循以下步骤:确定表空间名称,方法是运行查询:SELECT tablespace_name FROM dba_tablespaces;查询表空间大小,方法是运行查询:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

Oracle 视图加密允许您加密视图中的数据,从而增强敏感信息安全性。步骤包括:1) 创建主加密密钥 (MEk);2) 创建加密视图,指定要加密的视图和 MEk;3) 授权用户访问加密视图。加密视图工作原理:当用户查询加密视图时,Oracle 使用 MEk 解密数据,确保只有授权用户可以访问可读数据。

Oracle 安装失败的卸载方法:关闭 Oracle 服务,删除 Oracle 程序文件和注册表项,卸载 Oracle 环境变量,重新启动计算机。若卸载失败,可使用 Oracle 通用卸载工具手动卸载。

在 Oracle 中查看实例名的方法有三种:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通过操作系统的任务管理器、Oracle Enterprise Manager 或检查环境变量 (Linux 上的 ORACLE_SID)。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

AWR 报告是显示数据库性能和活动快照的报告,解读步骤包括:识别活动快照的日期和时间。查看活动、资源消耗的概览。分析会话活动,找出会话类型、资源消耗和等待事件。查找潜在性能瓶颈,如缓慢的 SQL 语句、资源争用和 I/O 问题。查看等待事件,识别并解决它们以提高性能。分析闩锁和内存使用模式,以识别导致性能问题的内存问题。

可以通过使用 Oracle 的动态 SQL 来根据运行时输入创建和执行 SQL 语句。步骤包括:准备一个空字符串变量来存储动态生成的 SQL 语句。使用 EXECUTE IMMEDIATE 或 PREPARE 语句编译和执行动态 SQL 语句。使用 bind 变量传递用户输入或其他动态值给动态 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 执行动态 SQL 语句。
