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

Hibernate学习笔记(三)【配置详解】

阅读更多

Hibernate配置翻译

<hibernate-mapping>
<class name="项目路径" table="库中对应表名" schema="dbo" catalog="netoa">
      <meta attribute="class-description">指定描述类的javaDoc</meta>
      <meta attribute="class-scope">指名类的修饰类型</meta>
      <meta attribute="extends">指定继承类</meta>
         <id name="bgrkbh" type="long">
            <column name="BGRKBH" precision="15" scale="0" sql-type="库中类型" check="BGRKBH>10"/>
            <meta attribute="scope-set">指定类,类属性的getxxx(),setxxx()方法的修饰符
             包括:static,final,abstract,public,protected,private
            </meta>
            <generator class="assigned" />
        </id>
         <property name="Class.fileName" type="long">
                <column name="YSLX" precision="精度" scale="刻度" not-null="默认false" sql-type="数据库中类型"/>
                附加属性不会影响Hibernate的运行行为
                <meta attribute="field-description">指定描述类的javaDoc</meta>
                指定描述类属性的javaDoc
         </property>
</class> 
</hibernate-mapping>

 

<meta>元素属性

        属性                                                描述
    class-description                            指定描述类的javaDoc
    field-description                            指定描述类的属性javaDoc
    interface                                    如果为true,表明生成接口而非类,默认false
    implements                                   指定类所实现的接口
    extends                                      指定继承的父类名
    generated-class                              重新指定生成的类名
    scope-class                                  指定类的修饰符,默认public
    scope-set                                    指定set方法的修饰符,默认public
    scope-get                                    指定get方法的修饰符,默认public
    scope-field                                  指定类的属性的修饰符,默认private
    use-in-toString                              如果为true,表示在toString()方法中包含此属性
    gen-property                                 如果为false,不会在java类中生成此属性,默认true
    finder-method                                指定find方法名

<column>元素属性

    name                 设定字段名字
    length               设定字段长度
    not-null             如为true,指名该字段不允许为null,默认false
    unique               如为true,指名该字段具有唯一约束,默认false
    index                给一个或多个字段建立索引
    unique-key           为多个字段设定唯一约束
    foreign-key          为外键约束命名,在<many-to-many><one-to-one><key><many-to-one>元素中包含
                         foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key
    sql-type             设定字段sql类型
    check                设定sql检查约束

用于控制insert or update 语句的映射属性

<property>元素的insert属性                如为false,在insert中不包含该字段,默认为true
<property>元素的update属性                如为false,在update中不包含该字段,默认为true
<class>元素的mutable属性                  如为false,等价于所有字段的update属性为false,默认为true
<property>元素的dunameic-insert属性       如为true,表明动态生成insert语句,只有不为null,才会包含insert语句中,默认false
<property>元素的dunameic-update属性       如为true,表明动态生成update语句,只有不为null,才会包含insert语句中,默认false
<class>元素的dunameic-insert属性          如为true,表明等价于所有字段动态生成insert语句,只有不为null,才会包含insert语句中 ,默认false
<class>元素的dunameic-update属性          如为true,表明等价于所有字段动态生成update语句,只有不为null,才会包含insert语句中 ,默认false

cascade属性

描述
none                              在保存更新时,忽略其他关联对象,他是cascade默认属性
save-update                       当通过Session的save(),update()以及saveOrUpdate()方法来保存或更新当前对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象
delete                            当通过session的delete()方法删除当前对象时,及联删除所有对象
lock                              把游离对象加入缓存当中,关联对象也加入
evict                             把持久化对象从缓存中移除,关联对象也移除
refresh                           刷新当前缓存中对象,级联对象也会刷新
all                               包含save-update、 delete、 evict、lock及refresh的行为
delete-orphan                     删除所有和当前对象解除关联关系的对象
all-delete-orphan                 包含all和delete-orphan

Hibernate映射类型,对应的java基本类型及对应的标准SQL类型

      Hibernate 映射类型               java类型                     标准SQL类型
       integer或者int                  int                          INTEGER
       long                            long                         BIGINT
       short                           short                        SMALLINT
       byte                            byte                         TINYINT
       float                           float                        FLOAT
       double                          double                       DOUBLE
       big_decimal                     java.math.BigDecimal         NUMERIC
       character                       char and string              CHAR
       string                          string                       VARCHAR
       boolean                         boolean                      BIT
     
              Hibernate映射类型,对应的java时间和日期类型及对应的标准SQL类型
     映射类型           java类型                     标准SQL类型             描述
      date       java.util.Date或者java.sql.Date        DATE         代表日期,YYYY-MM-DD
      time       java.util.Date或者java.sql.Date        TIME         代表时间,形式为HH:MM:SS
      timestamp java.util.Date或者java.sql.Timestamp   TIMESTAMP    代表日期和时间,YYYYMMDDHHMMSS
      calendar   java.util.Calendar                     TIMESTAMP    同上
   calendar_date java.util.Calendar                     DATE         代表日期,YYYY-MM-DD

 

 

JAVA大对象类型的Hibernate映射类型

   映射类型        java类型             标准SQL类型         MYSQL类型           ORALCE类型
   binary           byte[]            VARBINARY(或BLOB)      BLOB                  BLOB
   text             string               CLOB                TEXT                  CLOB
   serializable  实现Serializable       VARBINARY(或BLOB)    BLOB                  BLOB
                 接口任意一个java类
   clob            java.sql.Clob          CLOB               TEXT                  CLOB            
   blob            java.sql.Blob          BLOB               BLOB                  BLOB
a Session session=sessionFactory.openSession();
   Transaction tx=session.beginTransaction();
   Object obj=new Object();
   obj.setFile(Hibernate.createClob(" "));
   session.save(obj);
   session.flush();
   //锁定这条纪录
   session.refresh(obj,LocakMode.UPGRADE);
   oracle.sql.CLOB clob=(oracle.sql.CLOB)obj.getFile();
   //把长文本数据放入Clob中
   Writer pw=clob.getCharacterOutputStream();
   pw.write(longText);//longText标识长度超过255的字符串
   pw.close();
   tx.commit();
   session.close();
b InputStream in=this.getClass().getResourceAsStream("photo.gif");
   byte[] buffer=new byte[in.available()];
   in.read(buffer);
   set
分享到:
评论

相关推荐

    Hibernate学习笔记和资料

    hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...

    Hibernate_映射配置文件详解.ppt

    Hibernate_映射配置文件详解,很好用的学习文件

    马士兵java框架hibernate学习笔记

    以上是马士兵Java框架Hibernate学习笔记的主要知识点概览,涵盖了从基础配置到高级特性的一系列内容。对于初学者来说,这是一个很好的起点,可以帮助他们快速掌握Hibernate的核心概念和技术要点。

    hibernate学习笔记.

    【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...

    hibernate 学习笔记1

    ### 对象持久化与Hibernate学习笔记 #### 一、对象持久化的概念与重要性 - **定义**: 对象持久化是指将程序中的对象状态存储到持久化存储设备上的过程,以便在程序结束运行后仍然可以保留这些数据。 - **必要性**:...

    hibernate 学习笔记3

    标题:Hibernate学习笔记3 描述:本篇笔记深入探讨了Hibernate框架中一对多关系的映射及持久化对象状态管理,结合个人理解与实践经验,旨在为读者提供一份详实的学习资料。 ### 一、一对多关系映射详解 在...

    hibernate学习笔记(全)

    总之,《hibernate学习笔记(全)》涵盖了Hibernate的各个方面,从基础配置到高级应用,是学习和掌握Hibernate的宝贵资料。通过深入学习,读者不仅可以提升数据库操作的效率,还能更好地理解和运用ORM思想,提升Java...

    hibernate学习笔记01

    ### Hibernate学习笔记01 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,它能够有效地简化Java应用程序与数据库之间的交互,提供了一种更为优雅...

    Hibernate 学习笔记&代码.zip

    以上是 Hibernate 学习笔记的概览,通过这个压缩包,你可以逐步掌握 Hibernate 的核心概念,从基本的配置到复杂的查询,再到事务管理和高级特性,全面了解并运用 Hibernate 进行数据库操作。结合代码示例,实践是...

    Hibernate3.2学习笔记

    《Hibernate3.2学习笔记详解》 在Java开发中,ORM(Object-Relational Mapping)框架如Hibernate极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层的数据存取。本篇学习笔记将深入探讨Hibernate...

    Hibernate学习笔记(很详细哦)

    ### Hibernate学习笔记精要 #### 一、HelloWorld与Hibernate入门 **HelloWorld**是学习任何新技术时的经典第一个程序,Hibernate也不例外。通过构建一个简单的Java项目`hibernate_0100_HelloWorld`,我们可以熟悉...

    hibernate 学习笔记小结

    ### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...

    struts and hibernate学习笔记

    在这些学习笔记中,我们可以期待以下主题的深入探讨: 1. **Struts2基础**:包括Struts2的架构、配置文件详解、Action类的创建、结果类型配置、Interceptor的使用以及如何整合Struts2与Spring。 2. **Struts2实战*...

    Hibernate学习笔记(1)

    总结,本篇笔记主要介绍了Hibernate的基本使用,包括环境配置、项目构建、DAO设计以及具体的数据库操作实现,提供了从创建对象到持久化到数据库的完整流程。通过这种方式,开发者可以更加专注于业务逻辑,而不用过于...

    Hibernate---我的Hibernate学习笔记.doc

    ### Hibernate—我的Hibernate学习笔记 #### 一、对象持久化的理论与实践 ##### 对象持久化概念 对象持久化指的是将内存中的对象状态保存至外部持久性存储设备(如硬盘),以便于日后需要时能够恢复其状态。这一...

    Hibernate学习笔记

    ### Hibernate学习笔记知识点详解 #### 一、主配置文件解析 **1.1 配置文件结构** 在提供的配置文件中,我们首先看到的是主配置文件的声明与DTD定义,这是标准的XML文档声明和DTD定义,用于指定文档类型及版本。 ...

Global site tag (gtag.js) - Google Analytics