`
DigitalSonic
  • 浏览: 214754 次
社区版块
存档分类
最新评论

都是JDBC-ODBC惹得祸

阅读更多

前阵子的一个项目需要使用SQL2K作为后台数据库,本人一向认为Java配合MS SQL不是一个好选择,但往往也有不得不这么做的时候。一直听说MS的JDBC驱动不怎么样,所以我的第一反应是使用JDBC-ODBC桥,这样不用为项目添加额外的jar(其实是个很奇怪的理由,估计当时神游了,没怎么考虑)。系统使用了Hibernate 3.1.3和Spring Framework 2.0 RC2。

考虑到减少持久化层的开发,当然是使用工具从现有的数据库生成Hibernate的PO和DAO。但是在生成时发生了点意外,使用JDBC-ODBC桥竟然无法导出。。。无奈,只能暂时用下MS的驱动进行生成,其实这时就该醒悟了,放弃JDBC-ODBC,不过当时没怎么在意,以为在使用时不会有问题。

真正的问题发生在使用Hibernate保存修改时,保存使用了Spring的HibernateTemplate,主要是saveOrUpdate方法。在测试时我发现所有被修改或新增记录的字符型字段全被用空格填满了,比如:name varchar(10),在页面上我只输了"abc",可数据库中保存的却是"abc       "。起初我觉得是MultiActionController里取回表单数据时出问题了,但我一路追踪代码,从自己的代码一直看到Spring的代码,没发现什么问题;接着想想会不会是Hibernate中用的MS SQL Dialect有问题(其实又犯傻了,如果是这里有问题,早就别人被发现了),于是我又看了Hibernate的部分代码,依然无果。在Google上找相关内容,也看到了些遇到此类情况的,但貌似解决方案在我这里都不管用。

突然想到了生成时的情况,于是我修改了下applicationContext中dataSource的定义,直接使用MS的JDBC驱动,一切都好了。就在这时我也在国外的一个网站上找到了和我的情况完全一样的一篇文章,解决方法就是直接使用MS SQL2K的JDBC驱动替代JDBC-ODBC桥。

看来JDBC-ODBC桥也不是万能的,这里的情况实际是它的一个Bug,不巧被我撞上了。因为自己在解决这个问题时花了不少时间,所以记上一笔,如果有人遇上同样的问题,他就可以用中文Google到解决方法了。

分享到:
评论

相关推荐

    jdbc-odbc.zip_jdbc-odbc download

    在"jdbc-odbc.zip_jdbc-odbc download"这个压缩包中,我们可以期待找到关于如何使用JDBC-ODBC桥进行数据库操作的详细教程或代码示例。这个资源可能包含以下内容: 1. **JDBC-ODBC桥的基本概念**:解释JDBC-ODBC桥的...

    JDBC-ODBC BRIDGE PATCH for JDK 1.6/1.7 64bit

    SUN JDK 1.6/1.7 64bit的JDBC-ODBC Bridge有个缺陷:会随机抛出异常如下,在所有的ODBC Driver上。 java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length at sun.jdbc.odbc....

    JSP通过JDBC-ODBC桥接器访问数据库Mysql。

    JSP 通过 JDBC-ODBC 桥接器访问数据库 Mysql JSP 通过 JDBC-ODBC 桥接器访问数据库 Mysql 是一个常见的应用场景,本文档将详细介绍如何实现 JSP 通过 JDBC-ODBC 桥接器访问数据库 Mysql。 首先,需要安装和配置...

    使用JDBC-ODBC桥连接数据库

    在IT领域,特别是Web开发中,使用JDBC-ODBC桥连接数据库是一种常见的技术手段,尤其是在早期的Java Web开发环境中。下面将详细解析这一技术的关键知识点。 ### 1. JDBC与ODBC概述 #### JDBC(Java Database ...

    Easysoft JDBC-ODBC Bridge_jdbc_java_odbc_database_methodcpo_

    然而,不是所有数据库都提供了原生的JDBC驱动,这时就需要像Easysoft JDBC-ODBC Bridge这样的工具,它充当了一个中间层,将Java的JDBC调用转换为ODBC调用,进而与任何ODBC兼容的数据库进行通信。 ODBC(Open ...

    JDBC-ODBC连接数据库

    当在JSP(Java Server Pages)中处理数据库操作时,JDBC-ODBC桥接是将这两者结合使用的一种常见方法,尤其适用于小型项目或教学环境,例如连接到Microsoft Access数据库。本文将深入探讨如何在JSP中利用JDBC-ODBC...

    JDBC-ODBC使用Excel作数据源

    ### JDBC-ODBC桥接技术使用Excel作为数据源详解 #### 一、引言 在实际的软件开发过程中,有时我们需要处理的数据并不总是存储在传统的数据库中,比如MySQL或者Oracle等,而是一些非结构化的数据来源,如Excel表格...

    jdbc-odbc桥数据库连接及jdbc和odbc连接字符串.doc

    在实际应用中,JDBC-ODBC桥虽然提供了跨平台的数据库访问能力,但它的性能相对较低,因为每次数据库操作都需要经过Java到ODBC的转换,然后再由ODBC驱动转到特定的数据库系统。对于大规模的应用,更推荐使用直接支持...

    JDBC-ODBC桥接器访问Access数据库.pdf

    ### JDBC-ODBC桥接器访问Access数据库 #### 软件需求 - **开发环境**: JDK1.5,可以从官方或镜像站点下载:[http://javadocs.planetmirror.com/dist/jdk150-hh.zip]...

    一种jdbc-odbc桥连接Access的方法

    一种jdbc-odbc桥连接Access的方法

    sun.jdbc.odbc.JdbcOdbcDriver.zip

    这个驱动,也称为JDBC-ODBC桥,是Java早期版本中用于连接到ODBC兼容数据库的一种方式。 描述中提到的"sun.jdbc.odbc.JdbcOdbcDriver.jar"是这个驱动程序的主要组件,它是一个Java Archive(JAR)文件,包含了Java类...

    jdbc-odbc桥数据库连接

    【JDBC-ODBC桥数据库连接】是一种早期的数据库连接技术,它允许Java应用程序通过JDBC接口访问使用ODBC驱动程序的数据库。JDBC-ODBC桥由Sun Microsystems与Merant公司合作开发,目的是为了让Java应用程序能够利用已有...

    jdbc-odbc桥数据库连接推荐.pdf

    JDBC-ODBC桥是一种早期的数据库连接方式,主要用于Java应用程序通过JDBC API访问使用ODBC驱动的数据库。ODBC(Open Database Connectivity)是一个在操作系统层面提供数据库访问标准的接口,而JDBC(Java Database ...

    jdbc.rar_jdbc_jdbc-odbc

    **JDBC基础与JDBC-ODBC桥接详解** JDBC(Java Database Connectivity)是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口,它提供了标准的API,使得Java开发者能够连接到各种类型的数据库系统。JDBC...

    jdbc-odbc驱动用于sql-server2000和2005,欢迎大家下载

    标题中的“jdbc-odbc驱动”是指Java Database Connectivity (JDBC) 通过Open Database Connectivity (ODBC) 驱动程序来访问SQL Server 2000和2005数据库的方法。JDBC是Java平台上的一个标准API,用于与各种数据库...

    jdbc-odbc.rar_JDBC程序_ODBC access_jdbc access_odbc _windows 数据库

    标题中的"jdbc-odbc.rar"表明这是一个关于Java数据库连接(JDBC)通过ODBC(Open Database Connectivity)桥接访问Microsoft Access数据库的压缩文件。在IT领域,JDBC是Java平台的标准接口,允许Java应用程序与各种...

    JSP通过JDBC-ODBC访问Excel

    标题 "JSP通过JDBC-ODBC访问Excel" 描述的内容是关于如何使用JSP结合JDBC-ODBC桥接器来读取和展示Excel数据的详细过程。这个技术允许Web应用程序直接操作Excel电子表格,将其中的数据动态地呈现在网页上。下面将详细...

    jdbc-odbc桥数据库连接.pdf

    ### JDBC-ODBC桥数据库连接详解 #### 一、JDBC-ODBC桥的工作原理 JDBC-ODBC桥是一种特殊的JDBC驱动程序,由Sun Microsystems(现已被Oracle收购)与Merant公司联合开发。其核心功能在于将JDBC API调用转换为ODBC ...

    jdbc.odbc桥方式连接 经典

    ### JDBC-ODBC桥连接详解 #### 一、引言 在Java开发中,数据库连接是必不可少的一个环节。为了能够让Java程序与各种类型的数据库进行交互,Sun Microsystems提供了多种连接方式,其中一种便是JDBC-ODBC桥连接。...

    sun.jdbc.odbc.jdbcodbcdriver-Maven.zip

    标题中的"sun.jdbc.odbc.jdbcodbcdriver"指的是Java数据库连接(JDBC)中的一个特定驱动,即JDBC-ODBC桥接驱动。这个驱动在早期的Java版本中被广泛使用,它允许Java应用程序通过ODBC(Open Database Connectivity)...

Global site tag (gtag.js) - Google Analytics