`
china34420
  • 浏览: 136341 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转]Java JDBC-ODBC 连接 Access 数据库 中文乱码解决

    博客分类:
  • Java
 
阅读更多
http://blog.csdn.net/iamoyjj/article/details/5805327

由于Java的String类型使用的是unicode编码,而微软的Access数据库使用的是gbk编码。使用String类型的变量存储Access中的文本字段中文会发生乱码现象。

使用byte[]类型可以解决这一问题。
[size=x-small][/size]


1.更新到数据库的文本字段
使用ResultSet的updateBytes方法
public void updateBytes(String columnName, byte[] x) throws SQLException
String str="要写入数据库的中文";//utf-8
使用String的getBytes方法
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
转换编码格式为gbk
rs.updateBytes("columnName",str.getBytes("gbk"));
rs.updateRow();
这样写入Access数据库的中文字符便正常了;
2.从数据库字段读取文本
使用String类的构造函数
public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException
str=new String(rs.getBytes("columnName"),"gbk");
这样读取到String中的中文字符便正常了。
上面就是解决Access数据文本字段和String类型间乱码问题的方法。
本质上说,就是编码类型不匹配。需要根据情况进行编码类型转换。
这是要有效的利用字节数据类型的方法,来达到目的,使用合适的API方法。 评论: 使用
str=new String(rs.getBytes("columnName"),"gbk");
从Access数据库读取数据时,如果遇到空字段时,getBytes()返回null,此时接着进行String转换,会出现nullpoint异常.
因此需要判断getBytes()的返回结果是否为空 ,不为空的情况下才能进行转换.
可以如下判断:
byte[] bts=null;
String other = null;
bts = rs.getBytes("OTHERS"); //读取other字段
if(bts != null)  other =  new String(bts,"gbk");//如果不为空,则进行转换

注意此时不能使用equals(null)进行判断是否为空,
也即不能用bts.equals(null)进行判断,这样判断同样抛出nullpointer异常.
因为getBytes如果读取空字段,返回空指针.
分享到:
评论

相关推荐

    java连接access的mdb文件

    总的来说,Java连接Access MDB文件涉及到JDBC接口、ODBC驱动和数据库操作的基本概念。虽然JDBC-ODBC桥接驱动在某些场景下仍可使用,但为了长期的稳定性和性能,应该考虑升级到更现代的解决方案。

    jdbc-odbc的基本操作

    //访问数据库中文乱码问题 //result = rs.getString(1); } else { result = tel + "属于未知地区"; } } catch (Exception e) { // throw new MyException(e); e.printStackTrace(); } finally { // 下面...

    基于Java Swing的图书管理系统-版本二(csdn)————程序.pdf

    - 提到了几个关键的教程链接,包括Microsoft Access 2016的安装教程、使用ODBC连接Access数据库、TextPad的安装配置、IDEA中运行Java Swing项目时解决中文乱码问题,以及如何用Java指令编译Java文件。 总之,这个...

    jsp数据库连接示例

    在上述过程中,因为是Access数据库且“免设数据源”,这意味着我们直接通过JDBC/ODBC桥接方式连接,而不是通过JNDI(Java Naming and Directory Interface)查找数据源。这种方式在小型项目或开发环境中常见,但在...

    DW制作动态新闻网时连接数据库Driver的注意点+代码

    在Dreamweaver(DW)中制作动态新闻网,与数据库建立连接是至关重要的步骤。这个过程涉及到选择合适的数据库驱动(Driver),编写正确的连接代码,并确保所有配置都正确无误。以下是一些关键知识点和注意事项,以及...

    jsp考试资料

    - **JDBC字符集**:数据库连接时,可以通过JDBC驱动程序设置字符集,如连接SQL Server或Access。 6. **JDBC连接数据库**: - **SQL Server**:连接SQL Server的JDBC程序未给出,但通常需要导入对应JDBC驱动,设置...

    orcale驱动大全

    Oracle JDBC驱动是Java应用程序连接Oracle数据库的关键组件,它实现了Java Database Connectivity (JDBC) API,使得Java程序能够与Oracle数据库进行交互。 Oracle JDBC驱动分为四种类型: 1. ** Thin Driver(Type...

    基于JSP投票调查的WEB模块的实现(论文).doc

    - **JSP连接Access数据库**:使用JDBC-ODBC桥接驱动进行连接。 - **JSP连接MySQL数据库**:使用MySQL的JDBC驱动。 - **JSP连接SQL Server数据库**:使用Microsoft SQL Server的JDBC驱动。 每种数据库的连接方式略有...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹) PDF格式扫描版,全书分为24章,共817页。2011年1月出版。 全书压缩打包成4部分,这是第3部分 注:本系列图书的第I、II卷再版时均相应改名为...

    人才招聘系统的设计与实现开题报告.pdf

    - JDBC-ODBC桥接器:一种技术,通过ODBC驱动程序访问数据库,允许JDBC应用程序通过中间的ODBC层访问多种数据库。 - Hibernate 3.0:一个开源的对象关系映射(ORM)框架,用于将Java对象映射到数据库表,简化数据库...

    AccessDatabaseEngine_X64.exe 在用navicate录入excel到mysql的时候的一个插件(解决各种报错问题)

    标题中的"AccessDatabaseEngine_X64.exe"是一个重要的软件组件,它是Microsoft Office Access数据库引擎的64位版本。这个引擎允许程序(如Navicat)与Microsoft Access数据库格式交互,包括读取、写入和修改数据。在...

    sql,access导出表结构,互导

    反之,将SQL数据导入到Access,可以使用ODBC(Open Database Connectivity)或者JDBC(Java Database Connectivity)数据源,或者直接通过Access的“获取外部数据”功能来实现。在导入过程中,Access会尝试将SQL ...

    JSP从入门到精通.pdf

    - 设置编码以解决中文乱码问题。 - **3.1.3 常用方法举例** - `request.getMethod()` 获取请求方法(GET/POST)。 - **3.1.4 用户注册** - 处理用户注册时提交的数据,并验证用户输入的有效性。 - **3.1.5 ...

    《SQL数据库管理工具》(Richardson Software RazorSQL)v5.1.1/含注册机

    软件简介:RazorSQL 是数据库查询工具、SQL的编辑、数据库管理工具,可以通过ODBC,JDBC连接数据库,已经证实可以使用的数据库种类,达到了29种. RazorSQL is an SQL query tool, database browser, SQL ...

    JSP中文处理方法

    jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Database.mdb;Uid=admin;Pwd=;CharSet=gb2312; ``` #### 解决方案四:HTML表单数据处理 在接收HTML表单提交的数据时,同样存在编码问题。推荐的做法是...

    完整版读取DBF数据.rar

    DBF(dBase File)是一种常见的数据库文件格式,最初由dBase系统引入,现在被许多其他数据库管理系统支持,包括Visual FoxPro、 Clipper 和 Microsoft Access等。这种文件格式存储表格数据,每个DBF文件通常包含表格...

Global site tag (gtag.js) - Google Analytics