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

Hibernate配置翻译

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

<meta>元素属性

[plain]  view plain  copy
  1.     属性                                                描述  
  2. class-description                            指定描述类的javaDoc  
  3. field-description                            指定描述类的属性javaDoc  
  4. interface                                    如果为true,表明生成接口而非类,默认false  
  5. implements                                   指定类所实现的接口  
  6. extends                                      指定继承的父类名  
  7. generated-class                              重新指定生成的类名  
  8. scope-class                                  指定类的修饰符,默认public  
  9. scope-set                                    指定set方法的修饰符,默认public  
  10. scope-get                                    指定get方法的修饰符,默认public  
  11. scope-field                                  指定类的属性的修饰符,默认private  
  12. use-in-toString                              如果为true,表示在toString()方法中包含此属性  
  13. gen-property                                 如果为false,不会在java类中生成此属性,默认true  
  14. finder-method                                指定find方法名  
<column>元素属性
[plain]  view plain  copy
  1. name                 设定字段名字  
  2. length               设定字段长度  
  3. not-null             如为true,指名该字段不允许为null,默认false  
  4. unique               如为true,指名该字段具有唯一约束,默认false  
  5. index                给一个或多个字段建立索引  
  6. unique-key           为多个字段设定唯一约束  
  7. foreign-key          为外键约束命名,在<many-to-many><one-to-one><key><many-to-one>元素中包含  
  8.                      foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key  
  9. sql-type             设定字段sql类型  
  10. check                设定sql检查约束  
用于控制insert or update 语句的映射属性
[plain]  view plain  copy
  1. <property>元素的insert属性                如为false,在insert中不包含该字段,默认为true  
  2. <property>元素的update属性                如为false,在update中不包含该字段,默认为true  
  3. <class>元素的mutable属性                  如为false,等价于所有字段的update属性为false,默认为true  
  4. <property>元素的dunameic-insert属性       如为true,表明动态生成insert语句,只有不为null,才会包含insert语句中,默认false  
  5. <property>元素的dunameic-update属性       如为true,表明动态生成update语句,只有不为null,才会包含insert语句中,默认false  
  6. <class>元素的dunameic-insert属性          如为true,表明等价于所有字段动态生成insert语句,只有不为null,才会包含insert语句中 ,默认false  
  7. <class>元素的dunameic-update属性          如为true,表明等价于所有字段动态生成update语句,只有不为null,才会包含insert语句中 ,默认false  

cascade属性

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

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

[plain]  view plain  copy
  1.  Hibernate 映射类型               java类型                     标准SQL类型  
  2.   integer或者int                  int                          INTEGER  
  3.   long                            long                         BIGINT  
  4.   short                           short                        SMALLINT  
  5.   byte                            byte                         TINYINT  
  6.   float                           float                        FLOAT  
  7.   double                          double                       DOUBLE  
  8.   big_decimal                     java.math.BigDecimal         NUMERIC  
  9.   character                       char and string              CHAR  
  10.   string                          string                       VARCHAR  
  11.   boolean                         boolean                      BIT  
  12.   
  13.          Hibernate映射类型,对应的java时间和日期类型及对应的标准SQL类型  
  14. 映射类型           java类型                     标准SQL类型             描述  
  15.  date       java.util.Date或者java.sql.Date        DATE         代表日期,YYYY-MM-DD  
  16.  time       java.util.Date或者java.sql.Date        TIME         代表时间,形式为HH:MM:SS  
  17.  timestamp java.util.Date或者java.sql.Timestamp   TIMESTAMP    代表日期和时间,YYYYMMDDHHMMSS  
  18.  calendar   java.util.Calendar                     TIMESTAMP    同上  
  19. lendar_date java.util.Calendar                     DATE         代表日期,YYYY-MM-DD  

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

[plain]  view plain  copy
  1. 映射类型        java类型             标准SQL类型         MYSQL类型           ORALCE类型  
  2. binary           byte[]            VARBINARY(或BLOB)      BLOB                  BLOB  
  3. text             string               CLOB                TEXT                  CLOB  
  4. serializable  实现Serializable       VARBINARY(或BLOB)    BLOB                  BLOB  
  5.               接口任意一个java类  
  6. clob            java.sql.Clob          CLOB               TEXT                  CLOB              
  7. blob            java.sql.Blob          BLOB               BLOB                  BLOB  
[plain]  view plain  copy
  1. a Session session=sessionFactory.openSession();  
  2.    Transaction tx=session.beginTransaction();  
  3.    Object obj=new Object();  
  4.    obj.setFile(Hibernate.createClob(" "));  
  5.    session.save(obj);  
  6.    session.flush();  
  7.    //锁定这条纪录  
  8.    session.refresh(obj,LocakMode.UPGRADE);  
  9.    oracle.sql.CLOB clob=(oracle.sql.CLOB)obj.getFile();  
  10.    //把长文本数据放入Clob中  
  11.    Writer pw=clob.getCharacterOutputStream();  
  12.    pw.write(longText);//longText标识长度超过255的字符串  
  13.    pw.close();  
  14.    tx.commit();  
  15.    session.close();  
  16. b InputStream in=this.getClass().getResourceAsStream("photo.gif");  
  17.    byte[] buffer=new byte[in.available()];  
  18.    in.read(buffer);  
  19.    set  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值