`
everlxq
  • 浏览: 108677 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Hibernate 与db2的一些问题【转】

 
阅读更多

1.使用hibernate存取blob,可参考使用下面url连接db2:
jdbc:db2://10.2.5.130:50000/testDB:driverType=4;fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;progressiveStreaming=2;progresssiveLocators=2;
2.错误:SQLCODE:   -401,   SQLSTATE:   42818,
    操作符错误,编程的时候编码不严谨,如在varchar字段使用操作符号 status=0。
3.SQL0443N SQLSTATE=38553 错误:
    从命令行,输入:db2cmd
    然后输入:db2
           TERMINATE
               CONNECT TO <dbname>
                   BIND <path>/db2schema.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue
                   TERMINATE  
4.SQLCODE=-302, SQLSTATE=22001
    常见报错信息如下:

    1)com.ibm.db2.jcc.b.jm: DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null
    2)ERROR DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704,

    【分析】根据报错信息看,问题的 产生根源为在支撑的关系型数据库中一些关键字段的字段长度设计太小,插入到字段的数值长度超出了字段的设计大小,从而引起了插入信息的中途截断。

    【解决思路】调整报错数据表中的相关字段大小到需求范围,经过测试这里的扩展幅度为新大小为字段初始大小的4倍是合适的。因为DB2数据库的默认表空间页面大小为4K,4K的页面对应的同一数据表的所有字段和长度不能超过4051B,所以扩展相应字段的大小受到了边界的限制。而DB2数据库一旦在数据表创建后,其页面大小是不可更改的,亦即默认4K的页面大小不能再修改为32K。解决思路如下:欲排除错误,必须增加报错字段的长度,欲增大字段长度必须拓展表空间的页面大小,欲调整表空间页面大小必须使得所建各表的缓冲池采用自己事先定义好的页面大小为32K的缓冲池。

    【步骤】

    方法1,在生成数据表之前,先替换掉系统默认的页面大小为4K的表空间,也就是USERSPACE1。考虑到DB2的自身限制,采用如下方法,删除系统原有的表空间USERSPACE1,然后新建同名的表空间USERSPACE1,为了使该表空间的页面大小为32K,此时一定要注意,缓冲池要选择自己事先建立的页面大小为32K的缓冲池(如LARGE_POOL)。在做完上述操作后,再设置系统的各项数据库连接参数,生成所需的各项数据表。此方法可以排除潜在字段扩展问题,操作简单,建议使用。

    方法2,在设置好系统的各项连接参数后,系统会在DB2中生成所需的各项数据表。那么找出产生错误的数据表后,生成创建该表的SQL脚本,然后删除该数据表,编辑该SQL脚本,在最后一行中,用新创建的页面大小为32K的表空间(如EKP_SPACE)替换系统默认的页面大小为4K的表空间(如USERSPACE1)后,重新生成同名数据表即可。缺点:需要找出所有需要扩充字段的数据表进行替换。工作量比较大,稍有遗漏就会有潜在的字段扩展问题产生。

 
分享到:
评论

相关推荐

    Hibernate连接DB2

    ### Hibernate 连接 DB2 的实现方法与注意事项 #### 一、引言 在现代软件开发过程中,ORM(对象关系映射)框架如 Hibernate 成为了连接应用层与数据库层的重要工具之一。对于 DB2 数据库而言,如何有效地利用 ...

    hibernate连接DB2驱动包

    标题中的“hibernate连接DB2驱动包”指的是在Java应用程序中使用Hibernate ORM框架与IBM的DB2数据库进行交互时所需的驱动程序包。这些驱动包是连接Java应用程序和DB2数据库之间的桥梁,允许数据的存取和操作。下面将...

    Hibernate Junit测试增删改查(DB2版本的)

    本教程将聚焦于使用Hibernate进行Junit测试,实现对DB2数据库的增删改查操作。下面,我们将详细探讨相关知识点。 首先,让我们理解Hibernate的核心概念。Hibernate是一个基于Java的开源持久化框架,它允许开发者用...

    DB2 驱动包 db2jcc.jar db2jcc_javax.jar db2jcc_license_cu.jar

    2. **db2jcc_javax.jar**:这个文件可能包含的是 javax.sql 相关的接口和类,扩展了JDBC标准,提供了一些高级特性,比如连接池管理和数据源支持。这使得开发者能够更方便地管理和控制数据库连接,提高性能和资源利用...

    hibernate与各种数据库的连接配置

    下面将介绍 Hibernate 与各种数据库的连接配置,包括 MySql、Sql Server、Oracle 和 DB2 等。 MySql 连接配置 MySql 是一个开源的关系数据库管理系统,广泛应用于 web 应用程序中。要使用 Hibernate 连接 MySql ...

    db2 性能优化--最新整理

    本文将详细介绍DB2性能优化的关键点之一——Pagesize与Bufferpool的调整策略,帮助读者更好地理解和掌握这些技术细节。 #### 二、Pagesize的重要性及调整策略 **Pagesize** 是指数据库中数据页的大小,它直接影响...

    驱动包 db2jcc.jar

    最近在自己的环境下搭建连接DB2数据库环境 用到Hibernate 但是连接DB2时 都是有问题 最后发现在网上下载的DB2驱动包有问题 在朋友那里弄到了DB2驱动包 与大家分享

    DB2 JDBC 应用实例

    DB2 JDBC 应用实例是基于Java Database Connectivity (JDBC) API与IBM的DB2数据库进行交互的一个实际项目。这个实例提供了丰富的学习材料,帮助开发者理解如何利用JDBC技术来设计、实现和优化与DB2数据库连接的应用...

    db2_jar-db2驱动架包

    同时,由于它遵循JDBC标准,因此可以与其他遵循JDBC的框架(如Hibernate、MyBatis等)无缝集成,提升开发效率。 总的来说,`db2_jar`是Java开发者与DB2数据库交互的重要工具,它提供了全面的功能和高性能的数据库...

    hibernate 3.2 example

    在`Hibernate 3.2`中,有一些关键特性和改进,比如增强了性能、支持更多的数据库平台以及对JPA(Java Persistence API)的更全面支持。 ### Hibernate 3.2 的主要特性 1. **性能提升**:`Hibernate 3.2`通过优化...

    hibernate中所有数据库方言

    Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用与各种关系型数据库进行交互。它提供了强大的功能,如对象持久化、查询语言支持、事务管理等,大大简化了数据访问层的开发工作。 ### Hibernate支持的...

    Hibernate不同数据库的连接及SQL方言

    首先,Hibernate提供了一些基本的数据库连接驱动程序,例如mysql、oracle、sqlserver等。这些驱动程序可以让Hibernate连接不同的数据库。但是,为了确保数据的正确性和一致性,Hibernate还需要使用不同的SQL方言来...

    hibernate连接各种数据库的方法

    为了成功地使用Hibernate与数据库进行交互,我们需要正确配置`hibernate.cfg.xml`或`persistence.xml`文件中的连接参数。以下是一些关键配置项: - **hibernate.dialect**:指定特定数据库的方言。不同的数据库有...

    SSH+DB2搭建开发环境(下)

    Hibernate则作为ORM(对象关系映射)工具,使得Java对象可以直接与数据库进行交互。 1. **安装SSH框架** - **Spring**:下载最新版本的Spring框架,将其添加到项目的类路径中。配置Spring的IoC容器和AOP支持,通过...

    自己写的jdbc对DB2的操作(含jar包在里面)

    1. **JDBC驱动**:通常会有一个或多个jar文件,比如`db2jcc4.jar`和`db2jcc_license_cu.jar`,这是IBM DB2的JDBC驱动程序,用于建立Java应用与DB2数据库的连接。 2. **Java源代码**:包含实现DB2操作的Java类,可能...

    jdbc和hibernate的区别

    3. **数据状态**:JDBC操作的数据是瞬时的,数据库与内存中的数据可能不一致,而Hibernate提供了一种对象-关系映射机制,使得数据具有持久性,能够保持数据库与对象的一致性。 **性能比较:** 1. **创建操作**:...

    DB2、ORACLE

    DB2和Oracle是两种广泛应用的关系型数据库管理系统,它们在SQL语法上存在一些显著的差异,这使得在跨数据库系统开发时需要特别注意兼容性问题。以下是一些主要的区别点: 1. **数据类型转换函数**: - Oracle允许...

    java框架之hibernate

    - 相比于`load()`,`get()`更简单直接,但在某些场景下可能会导致性能问题。 #### 二、Hibernate中HBM2DDL.Auto的用法 `hibernate.hbm2ddl.auto`是一个非常重要的配置选项,它决定了Hibernate如何处理数据库模式...

Global site tag (gtag.js) - Google Analytics