`

hibernate

阅读更多

hibernate配置详解【转载】

 

  1. <meta>元素的属性   
  2.   
  3. 属性 描述   
  4.   
  5. class-description 指定描述类的javaDoc   
  6.   
  7. field-description 指定描述类的属性javaDoc   
  8.   
  9. interface 如果为true,表明生成接口而非类,默认false   
  10.   
  11. implements 指定类所实现的接口   
  12.   
  13. extends 指定继承的父类名   
  14.   
  15. generated-class 重新指定生成的类名   
  16.   
  17. scope-class 指定类的修饰符,默认public   
  18.   
  19. scope-set 指定set方法的修饰符,默认public   
  20.   
  21. scope-get 指定get方法的修饰符,默认public   
  22.   
  23. scope-field 指定类的属性的修饰符,默认private   
  24.   
  25. use-in-toString 如果为true,表示在toString()方法中包含此属性   
  26.   
  27. gen-property 如果为false,不会在java类中生成此属性,默认true   
  28.   
  29. finder-method 指定find方法名   
  30.   
  31. <column>元素属性   
  32.   
  33. name 设定字段名字   
  34.   
  35. length 设定字段长度   
  36.   
  37. not-null 如为true,指名该字段不允许为null,默认false   
  38.   
  39. unique 如为true,指名该字段具有唯一约束,默认false   
  40.   
  41. index 给一个或多个字段建立索引   
  42.   
  43. unique-key 为多个字段设定唯一约束   
  44.   
  45. foreign-key 为外键约束命名,在<many-to-many><one-to-one><key><many-to-one>元素中包含   
  46.   
  47. foreign-key属性,在双向关联中,inverse属性为true的一端不能设置foreign-key   
  48.   
  49. sql-type 设定字段sql类型   
  50.   
  51. check 设定sql检查约束   
  52.   
  53. 用于控制insert or update 语句的映射属性   
  54.   
  55. <property>元素的insert属性 如为false,在insert中不包含该字段,默认为true   
  56.   
  57. <property>元素的update属性 如为false,在update中不包含该字段,默认为true   
  58.   
  59. <class>元素的mutable属性 如为false,等价于所有字段的update属性为false,默认为true   
  60.   
  61. <property>元素的dunameic-insert属性 如为true,表明动态生成insert语句,只有不为null,才会包含insert语句中,默认false   
  62.   
  63. <property>元素的dunameic-update属性 如为true,表明动态生成update语句,只有不为null,才会包含insert语句中,默认false   
  64.   
  65. <class>元素的dunameic-insert属性如为true,表明等价于所有字段动态生成insert语句,只有不为null,才会包含insert语句中 ,默认false   
  66.   
  67. <class>元素的dunameic-update属性如为true,表明等价于所有字段动态生成update语句,只有不为null,才会包含insert语句中 ,默认false   
  68.   
  69. Hibernate提供的内置标识符生成器   
  70.   
  71. increment 适用于代理主键,自动递增,增1(只能是long,int,short)   
  72.   
  73. identity 适用于代理主键,底层数据库自动增长字段类型(数据库需支持,只能是long,int,short)   
  74.   
  75. (oralce)sequence 适用于代理主键,根据底层数据库的序列来生成标识符(数据库支持序列,只能是long,int,short)   
  76.   
  77. hilo 适用于代理主键,根据high/low算法来生成.Hibernate把特定表的字段作为high值,在默认情况下选用hibernate_unique_key表的next_hi字段   
  78.   
  79. (mysql,mssql)native 适用于代理主键,根据数据库自动生成标识符支持能力,来选择identity,sequence,hilo   
  80.   
  81. uuid.hex 适用于代理主键,采用128位UUID(universal unique identification)算法来生成标识.此算法能在网络环境中生成唯一的字符串标识符,   
  82.   
  83. (不建议使用,字符串类型比整形类型的主键占用更多的空间)   
  84.   
  85. assigned 适用于自然主键,由java程序负责生成.   
  86.   
  87. <hibernate-mapping>   
  88.   
  89. <class name="项目路径" table="库中对应表名" schema="dbo" catalog="netoa">   
  90.   
  91. <meta attribute="class-description">指定描述类的javaDoc</meta>   
  92.   
  93. <meta attribute="class-scope">指名类的修饰类型</meta>   
  94.   
  95. <meta attribute="extends">指定继承类</meta>   
  96.   
  97. <id name="bgrkbh" type="long">   
  98.   
  99. <column name="BGRKBH" precision="15" scale="0" sql-type="库中类型" check="BGRKBH>10"/>   
  100.   
  101. <meta attribute="scope-set">指定类,类属性的getxxx(),setxxx()方法的修饰符   
  102.   
  103. 包括:static,final,abstract,public,protected,private   
  104.   
  105. </meta>   
  106.   
  107. <generator class="assigned" />   
  108.   
  109. </id>   
  110.   
  111. <property name="Class.fileName" type="long">   
  112.   
  113. <column name="YSLX" precision="精度" scale="刻度" not-null="默认false" sql-type="数据库中类型"/>   
  114.   
  115. 附加属性不会影响Hibernate的运行行为   
  116.   
  117. <meta attribute="field-description">指定描述类的javaDoc</meta>   
  118.   
  119. 指定描述类属性的javaDoc   
  120.   
  121. </property>   
  122.   
  123. </class>   
  124.   
  125. </hibernate-mapping>   
  126.   
  127. 注意:   
  128.   
  129. 1 Session的commit()和flush()方法的区别,flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;   
  130.   
  131. commit()方法会先调用flush(),然后提交事务.提交事务意味着对数据库所作的更新被永久保存下来.   
  132.   
  133. 2 Session的setFlushMode()方法用于设定清理缓存的时间点.FlushMode类定义了三种不同的清理模式   
  134.   
  135. 清理缓存的模式 Session的查询方法 Session的commit()方法 Session的flush()方法   
  136.   
  137. FlushMode.AUTO            清理                               清理                              清理   
  138.   
  139. FlushMode.COMMIT       不清理                            清理                              清理   
  140.   
  141. FlushMode.NEVER         不清理                          不清理                            清理   
  142.   
  143. 3 Hibernate应用中java对象的状态   
  144.   
  145. 临时状态 (transient):刚刚用new语句创建,还没被持久化,不处与Session的缓存中,处于临时状态的java对象被称为临时对象.   
  146.   
  147. 持久化状态(persistent):已经被持久化,加入session的缓存中.处于持久化状态的java对象被称为持久化对象.   
  148.   
  149. 游离状态(detached):已经被持久化,但不在处于session的缓存中.处于游离状态的java对象被称为游离对象.   
  150.   
  151. (注意:::::)持久化类与持久化对象是不同的概念.持久化类的实例可以处于临时状态,持久化状态和游离状态.其中处于   
  152.   
  153. 持久化状态的实例 被称为持久化状态.   
  154.   
  155. 临时对象的特性:   
  156.   
  157. 1 不处于缓存中,也可以说,不被任何一个Session实例关联   
  158.   
  159. 2 在数据中没有对应的纪录.   
  160.   
  161. 在此情况下,java对象进入临时状态   
  162.   
  163. 1 当通过new创建一个对象时,此时不和数据库中的任何纪录的   
  164.   
  165. ex:对象的状态转化过程   
  166.   
  167. 程序代码                                                          对象的生命周期 对象的状态   
  168.   
  169. tx=session.beginTransaction();   
  170.   
  171. Object obj=new Object("tow",new HashSet()); 开始生命周期       临时状态   
  172.   
  173. session.save(obj);                                                 处于生命周期 转化为持久状态   
  174.   
  175. Long id=obj.getId();   
  176.   
  177. obj=null;   
  178.   
  179. Object obj2=(Object)session.load(Object.class,id); 处于生命周期 处于持久化状态   
  180.   
  181. tx.commit();   
  182.   
  183. session.close();                                                              处于生命周期 转变成游离状态   
  184.   
  185. System.out.print(obj2.getName());                              处于生命周期 处于游离状态   
  186.   
  187. obj2=null;                                                                     结束生命周期 结束生命周期   
  188.   
  189. 4 cascade属性   
  190.   
  191. cascade属性值 描述   
  192.   
  193. none 在保存更新时,忽略其他关联对象,他是cascade默认属性   
  194.   
  195. save-update 当通过Session的save(),update()以及saveOrUpdate()方法来保存   
  196.   
  197. 或更新当前对象时,及联保存所有关联的新建的临时对象,并且及联更新所有关联的游离对象   
  198.   
  199. delete 当通过session的delete()方法删除当前对象时,及联删除所有对象   
  200.   
  201. all 包含save-update及delete行为,此外对当前对象执行evict()或lock   
  202.   
  203. ()操作时,也会对所有关联的持久化对象执行evict()或lock()操作   
  204.   
  205. delete-orphan 删除所有和当前对象解除关联关系的对象   
  206.   
  207. all-delete-orphan 包含all和delete-orphan   
  208.   
  209. 5 Hibernate映射类型,对应的java基本类型及对应的标准SQL类型   
  210.   
  211. Hibernate映射类型      java类型 标准SQL类型   
  212.   
  213. integer或者int                int              INTEGER   
  214.   
  215. long                                long             BIGINT   
  216.   
  217. short                               short        SMALLINT   
  218.   
  219. byte                                byte          TINYINT   
  220.   
  221. float                                 float          FLOAT   
  222.   
  223. double                          double        DOUBLE   
  224.   
  225. big_decimal      java.math.BigDecimal  NUMERIC   
  226.   
  227. character              char and string              CHAR   
  228.   
  229. string                         string                      VARCHAR   
  230.   
  231. boolean                 boolean                         BIT   
  232.   
  233. Hibernate映射类型  ,对应的java时间和日期类型及对应的标准SQL类型   
  234.   
  235. 映射类型                      java类型                          标准SQL类型         描述   
  236.   
  237. date    java.util.Date或者java.sql.Date                DATE      代表日期,YYYY-MM-DD   
  238.   
  239. time java.util.Date或者java.sql.Date                  TIME       代表时间,形式为HH:MM:SS   
  240.   
  241. timestamp java.util.Date或者java.sql.Timestamp TIMESTAMP   代表日期和时间,YYYYMMDDHHMMSS   
  242.   
  243. calendar java.util.Calendar                                  TIMESTAMP             同上   
  244.   
  245. calendar_date java.util.Calendar                          DATE         代表日期,YYYY-MM-DD

 

分享到:
评论

相关推荐

    Hibernate 配置各种数据库

    Hibernate 配置各种数据库 Hibernate 是一个基于 Java 的持久层框架,提供了一个抽象的数据访问层,能够与多种数据库进行集成。在 Hibernate 的配置文件中,我们可以配置不同的数据库连接,包括驱动程序、URL 等...

    hibernate jar包:hibernate-commons-annotations-4.0.1.Final.jar等

    Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    项目原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 二、 项目目的: 整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + ...

    hibernate学习资料大全

    【hibernate学习资料大全】 Hibernate 是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。这个压缩包包含了丰富的Hibernate学习资源,旨在帮助开发者深入理解和熟练掌握这一强大的...

    Hibernate-extensions 完整安装包

    《Hibernate-Extensions全面指南》 Hibernate,作为Java领域中的一款著名对象关系映射(ORM)框架,极大地简化了数据库操作。然而,为了满足更复杂的业务需求,Hibernate还提供了丰富的扩展功能,这就是我们今天要...

    hibernate-release-4.1.4

    【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...

    hibernate基础jar包

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。这个压缩包包含了Hibernate的基础jar包,这些jar文件是开发Hibernate应用所...

    HibernateTools-3.2.4

    HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...

    kingbaseV8 hibernate jdbc 驱动

    在Java开发环境中,与KingbaseV8数据库进行交互通常会用到Hibernate框架和JDBC驱动。 Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java对象与数据库表进行映射,...

    hibernate3全部jar包:hibernate3.jar.zip 下载

    Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。这个“hibernate3全部jar包:hibernate3.jar.zip”包含了所有必要的库文件,方便用户一次性下载并...

    Hibernate3的依赖包

    Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...

    hibernate和MySQL的jar

    标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...

    hibernate4.3完整jar包

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...

    Hibernate 中文api 等学习资料

    标题"Hibernate 中文api 等学习资料"暗示了这是一组针对Hibernate ORM框架的中文学习资源,包括API文档和其他指南,旨在帮助用户更好地理解和使用Hibernate。 描述中的"hibernate orm框架api中文文档,学习资料,...

    hibernate.5.1.0.jar全部

    包含hibernate所有所需jar包还有一些其他包日志包、jpa支持包等: 列如:hibernate-core-5.1.0.Final.jar hibernate-ehcache-5.1.0.Final.jar hibernate-entitymanager-5.1.0.Final.jar hibernate-envers-5.1.0....

    Hibernate入门jar包

    Hibernate是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使开发者可以更加专注于业务逻辑而不是数据访问层的实现。本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之...

    hibernate3必要jar包

    Hibernate3 是一个非常重要的Java持久化框架,它允许开发者将对象模型与数据库关系模型进行映射,从而简化了数据存取的过程。这个压缩包“hibernate3必要jar包”显然是针对Hibernate3版本的,已经去除了冗余的库文件...

    hibernate所需包:hibernate3,依赖包,JDBC

    Hibernate3是Hibernate的第三个主要版本,发布于2005年,它提供了一种将Java对象与数据库表之间的映射方式,使得数据库操作更加面向对象。该框架支持多种数据库,包括MySQL、Oracle、SQL Server等,并且通过JDBC API...

    hibernate_3.2官方开发包

    Hibernate 是一个著名的开源对象关系映射(ORM)框架,它为Java开发者提供了便捷的数据持久化方式,使得在Java应用程序中操作数据库变得更加简单。这个“hibernate_3.2官方开发包”包含了所有你需要开发基于...

Global site tag (gtag.js) - Google Analytics