`

hibernate UserType使用心得

阅读更多
UserType中其他方法不用多说,主要说明下面两个方法

/**
* 负责将数据库中的数据解析为PO中对应属性的值
* PreparedStatement st:将存储到数据库中的数据集
* Object value:该属性的值。
* int index:不太清除具体作用。目前是直接使用
*/
public void nullSafeSet(PreparedStatement st, Object value, int index)
        throws HibernateException, SQLException
{
  如果是把Object转为String存储,则使用Hibernate提供的方法
           String str = assemble((该Field的类型) value);
           Hibernate.STRING.nullSafeSet(st, str, index);

  但如果想把Object转为Blob存储
           // 自己负责将Object转为byte[],这里用String举例
           byte[] bytes = string.getBytes();

           st.setBytes(index, bytes);
}


/**
* 负责将数据库中的数据解析为PO中对应属性的值
* ResultSet rs:数据库中得到的数据结果集
* String names[]:列名。一般只用到names[0]
* Object owner:未使用到。待更新
*/
public Object nullSafeGet(ResultSet rs, String names[], Object owner)
        throws HibernateException, SQLException
{
  如果是把Object转为String存储,则使用Hibernate提供的方法
        String value = (String) Hibernate.STRING.nullSafeGet(rs, names[0]);

  如果把Object转为Blob存储,则使用
        SessionImplementor sim = (SessionImplementor)session;
        Hibernate.BLOB.nullSafeGet(rs, names, sim, owner);
    
    
     不知道SessionImplementor 如何赋值时的解决办法:
         根据属性名称直接获取对应的Blob值
           String value = names[0];
           Blob blobs = rs.getBlob(value);
     
}

0
5
分享到:
评论

相关推荐

    hibernate4.1中文api

    - **使用org.hibernate.usertype.UserType**: 实现自定义用户类型。 - **使用org.hibernate.usertype.CompositeUserType**: 映射复合类型。 - **类型注册**: 注册自定义类型。 #### 7. 集合映射 - **持久化集合*...

    hibernate映射Oracle中LONG类型

    在 Hibernate 框架中,使用自定义类型映射 Oracle 中的 LONG 类型字段是一种常见的解决方案。通过实现 UserType 接口,我们可以定制 LONG 类型字段的读写操作。在本例中,我们定义了一个名为 CustomLong 的类,该类...

    hibernate需要的jar包们

    4. **dom4j.jar**:这是一个XML处理库,Hibernate使用它来解析和操作XML配置文件。 5. **jadira.usertype.core.jar**:这个库主要用于处理日期和时间类型的映射,尤其是Joda-Time和Java 8的日期/时间API。 6. **...

    mysql 让hibernate支持text字段的方言

    - 如果使用的是HBM(Hibernate Mapping)文件,需要在对应字段上配置`type`属性,指向自定义的`UserType`全限定类名。 通过以上步骤,你可以确保Hibernate在处理MySQL的`TEXT`字段时能够正确地进行序列化、反序列...

    Hibernate3.2EnumTypeMapping-demo.zip

    - `TYPE`:自定义类型映射,需要实现`org.hibernate.usertype.UserType`接口,可以自定义存储和读取的逻辑。 2. **配置枚举类型映射**: 在Hibernate的映射文件(.hbm.xml)中,可以使用`<typedef>`元素定义枚举...

    hibernate(api_介绍)

    Hibernate 是一个强大的 Java 持久化框架,它简化了数据库与对象之间的交互。通过提供一组丰富的API,Hibernate使得开发者能够在应用中轻松地管理和操作数据库数据。...理解并熟练使用这些接口是掌握Hibernate的关键。

    用Hibernate实现领域对象的自定义字段

    本文将深入探讨如何使用Hibernate实现领域对象的自定义字段,这涉及到对Hibernate核心概念的理解以及自定义类型的应用。 首先,我们需要了解Hibernate的核心概念。Hibernate主要通过配置文件(hibernate.cfg.xml)...

    Hibernate 配置跟数据库字段的对应关系

    Hibernate使用注解或XML映射文件来实现这一功能。对于注解方式,例如我们有一个User类,其中有个字段`username`,我们可以在字段上添加`@Column`注解: ```java public class User { @Id @GeneratedValue...

    J2EE企业级项目开发-1期 04 Hibernate使用经验.doc

    【J2EE企业级项目开发-1期 04 Hibernate使用经验】 在J2EE企业级项目开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,被广泛用于简化数据库操作。以下是一些关于Hibernate使用的重要经验和技巧: 1. **...

    VC开发工具使用技巧源代码_usertype.zip

    VC开发工具使用技巧源代码_usertype.zipVC开发工具使用技巧源代码_usertype.zipVC开发工具使用技巧源代码_usertype.zipVC开发工具使用技巧源代码_usertype.zipVC开发工具使用技巧源代码_usertype.zip

    hibernate(api 介绍).docx

    我们在 Hibernate 应用中使用最广泛的接口,也被称为持久化管理器,提供了相关的数据库操作,比如添、更、删、加、查等基本操作。特点:非线程安全,轻量级,其创建及销毁消耗资源少。每个客户请求对应一个 Session...

    简要分析Java的Hibernate框架中的自定义类型

    使用自定义类型时,你需要在实体类的属性上使用`@Type`注解,指定自定义类型的实现类,使得Hibernate在操作这些属性时能够调用我们定义的转换逻辑。 例如,如果你有一个自定义日期时间类型,可以这样使用: ```java...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     11.1.5 使用Hibernate内置映射类型  11.2 客户化映射类型  11.2.1 用客户化映射类型取代Hibernate组件  11.2.2 用UserType映射枚举类型  11.2.3 实现CompositeUserType接口  11.2.4 运行本节范例程序  11.3 ...

    Hibernate4实战 之第七部分

    当需要持久化某些来自第三方库的Java类型时,如果这些类型没有提供适当的getter和setter方法,可以考虑实现`org.hibernate.UserType`接口来定义自定义类型。这样可以在不修改原有类的情况下完成持久化任务。 #### ...

    hibernate3.2API

    **hibernate 帮助文档**是学习和使用Hibernate框架的关键资源,其中包含了详尽的API参考、示例代码和教程。通过这份文档,开发者可以了解到如何配置Hibernate,如何创建和管理实体类,以及如何执行CRUD(创建、读取...

    Hibernate实战(第2版 中文高清版)

     2.2.2 使用Hibernate EntityManager   2.2.3 引入EJB组件   2.2.4 切换到Hibernate接口   2.3 反向工程遗留数据库   2.3.1 创建数据库配置   2.3.2 定制反向工程   2.3.3 生成Java源代码   2.4 与...

    动态添加hibernate domain的属性的例子

    这通常通过实现`org.hibernate.usertype.UserType`接口来完成,该接口定义了将Java类型转换为数据库类型的逻辑。 以下是一些关键步骤: 1. **创建动态扩展的基类**:定义一个基类,它继承自Hibernate的`...

    hibernate3中文手册

    《Hibernate3中文手册》是Java开发领域中关于对象关系映射框架Hibernate的重要参考资料,它详尽地阐述了Hibernate3的使用方法和核心概念。Hibernate是一个开放源代码的对象关系映射框架,它允许开发者将数据库操作与...

    Hibernate Reference 4.3.4 zh_CN 中文版

    - **自定义类型使用org.hibernate.usertype.UserType** - **自定义类型使用org.hibernate.usertype.CompositeUserType** **6.5 类型注册表**:说明了如何注册自定义类型。 #### 7. 集合的映射 - **持久集合**:...

    马士兵hibernate学习笔记

    - **自定义数据类型**:通过实现 `org.hibernate.usertype.UserType` 接口来自定义数据类型。 通过以上内容的学习,可以全面理解 Hibernate 的基本原理和使用方法,掌握其核心概念和技术要点,从而能够有效地利用 ...

Global site tag (gtag.js) - Google Analytics