- 浏览: 3559569 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
原创 hibernate总结 收藏
对象关系映射:
Hibernate访问持久话类属性的策略:
在对象-关系映射文件中,<property>元素的access属性用于指定Hibernate访问持久化类的属性的方式:
Property:默认值,表明Hibernate通过相映的setXXX()和getXXX()方法来访问类的属性,可以更灵活的封装
持久化类,提高域模型的透明性.
field:表明Hibernate运用java反射机制直接访问类的属性,如果类没有为某个属性,如:name提供setName()
和getName()方法,就可以把属性设为field,使Hibernate能直接访问name属性.如:
<property name="name" access="field"/>,除了以上两种方法,还可以自定义持久化类的属性的访问方式,这
需要创建有个实现net.sf.hibernate.property.PropertyAccessor接口的类,然后把类的完整名字赋予<property>元素的access属性.
<property>元素的formula属性指定一个SQL表达式,该表达式可以引用表的字段,调用SQL函数或者包含子查询语句,如:LineItem类中有一个
unitPrice属性,而在表LINEITEMS表中没有对应的UNIT_PRICE字段,可以通过下面方式映射unitPrice属性L
<property name="unitPrice" formula="BASE_PRICE*QUANTITY"/>
用于控制insert和update语句的映射属性
<property>元素的insert属性:如果为false,在insert语句中不包含该字段,表明该字段永远不能被插入.
<property>元素的update属性:如果为false,在update语句中不包含该字段,表明该字段永远不能被更新.
<class>元素的mutable属性:如果为false,等于所有的<property>元素的update属性为false,表示整个实例不能被更新.
<property>元素的dynamic-insert属性:如果为true,表示当保存一个对象的时候,会动态生成insert语句,只有这个字段取值不为null,才会把
他包含到insert语句中.
<property>元素的update属性:如果为true,表示当更新一个对象的时候,会动态生成update语句,只有这个字段取值不为null,才会把
他包含到update语句中
<class>元素的dynamic-insert属性:如果为true,等于所有的<property>元素的dynamic-insert属性为true,表示当保存一个对象时,会动态生成insert
语句,insert语句中仅包含所有取值不为null的字段.
<class>元素的dynamic-update属性:如果为true,等于所有的<property>元素的dynamic-update属性为true,表示当更新一个对象时,会动态生成update
语update语句中仅包含所有取值不为null的字段.
创建命名策略:
实现Hibernate的NamingStrategy接口:
例如:
import net.sf.hibernate.cfg.NamingStrategy;
import not.sf.hibernate.util.StringHelper;
public classMyNamingStrategy implements NamingStrategy
{
public String classToTableName(String calssName)
{
///////unqualify()是StringHelper类提供的实用方法,参数是一个类名,返回值是一个
不带包名的类名.
return StringHelper.unqualify(className).toUpperCase()+'s';
}
//////////////类的属性名字映射为字段名字的方法
public String propertyToColumnName(String propertyName)
{
return propertyName.toUpperCase();
}
public String columnName(String columnName)
{
return columnName;
}
public String propertyToTableName(String className,String propertyName)
{
return classToTableName(className)+'_'+propertyToColumnName(propertyName);
}
}
为了让Hibernate采用以上的命名方案,需要在Hibernate初始化阶段设置Configuration对象的NamingStrategy属性:
如: Configuration config=new Configuration();
config.setnamingStratagy(new MyNamingStrategy());
设置命名Schema(通过配置方式来指定简单的命名策略)
如:<hibernate-mapping default-schema="QQ">
<class name="mypack.Customer" table="CUSTOMERS">
</class>
</hibernate-mapping>
那么Hibernate会把Customer类映射表成为QQ_CUSTOMERS
对象关系映射:
Hibernate访问持久话类属性的策略:
在对象-关系映射文件中,<property>元素的access属性用于指定Hibernate访问持久化类的属性的方式:
Property:默认值,表明Hibernate通过相映的setXXX()和getXXX()方法来访问类的属性,可以更灵活的封装
持久化类,提高域模型的透明性.
field:表明Hibernate运用java反射机制直接访问类的属性,如果类没有为某个属性,如:name提供setName()
和getName()方法,就可以把属性设为field,使Hibernate能直接访问name属性.如:
<property name="name" access="field"/>,除了以上两种方法,还可以自定义持久化类的属性的访问方式,这
需要创建有个实现net.sf.hibernate.property.PropertyAccessor接口的类,然后把类的完整名字赋予<property>元素的access属性.
<property>元素的formula属性指定一个SQL表达式,该表达式可以引用表的字段,调用SQL函数或者包含子查询语句,如:LineItem类中有一个
unitPrice属性,而在表LINEITEMS表中没有对应的UNIT_PRICE字段,可以通过下面方式映射unitPrice属性L
<property name="unitPrice" formula="BASE_PRICE*QUANTITY"/>
用于控制insert和update语句的映射属性
<property>元素的insert属性:如果为false,在insert语句中不包含该字段,表明该字段永远不能被插入.
<property>元素的update属性:如果为false,在update语句中不包含该字段,表明该字段永远不能被更新.
<class>元素的mutable属性:如果为false,等于所有的<property>元素的update属性为false,表示整个实例不能被更新.
<property>元素的dynamic-insert属性:如果为true,表示当保存一个对象的时候,会动态生成insert语句,只有这个字段取值不为null,才会把
他包含到insert语句中.
<property>元素的update属性:如果为true,表示当更新一个对象的时候,会动态生成update语句,只有这个字段取值不为null,才会把
他包含到update语句中
<class>元素的dynamic-insert属性:如果为true,等于所有的<property>元素的dynamic-insert属性为true,表示当保存一个对象时,会动态生成insert
语句,insert语句中仅包含所有取值不为null的字段.
<class>元素的dynamic-update属性:如果为true,等于所有的<property>元素的dynamic-update属性为true,表示当更新一个对象时,会动态生成update
语update语句中仅包含所有取值不为null的字段.
创建命名策略:
实现Hibernate的NamingStrategy接口:
例如:
import net.sf.hibernate.cfg.NamingStrategy;
import not.sf.hibernate.util.StringHelper;
public classMyNamingStrategy implements NamingStrategy
{
public String classToTableName(String calssName)
{
///////unqualify()是StringHelper类提供的实用方法,参数是一个类名,返回值是一个
不带包名的类名.
return StringHelper.unqualify(className).toUpperCase()+'s';
}
//////////////类的属性名字映射为字段名字的方法
public String propertyToColumnName(String propertyName)
{
return propertyName.toUpperCase();
}
public String columnName(String columnName)
{
return columnName;
}
public String propertyToTableName(String className,String propertyName)
{
return classToTableName(className)+'_'+propertyToColumnName(propertyName);
}
}
为了让Hibernate采用以上的命名方案,需要在Hibernate初始化阶段设置Configuration对象的NamingStrategy属性:
如: Configuration config=new Configuration();
config.setnamingStratagy(new MyNamingStrategy());
设置命名Schema(通过配置方式来指定简单的命名策略)
如:<hibernate-mapping default-schema="QQ">
<class name="mypack.Customer" table="CUSTOMERS">
</class>
</hibernate-mapping>
那么Hibernate会把Customer类映射表成为QQ_CUSTOMERS
发表评论
-
犯规犯规犯规
2015-09-18 16:45 1348http://bbs.hupu.com/4466597.htm ... -
快速掌握Hibernate中悲观锁和乐观锁
2012-10-19 21:33 1618快速掌握Hibernate ... -
Hibernate延迟加载机制
2012-10-19 21:22 1374Hibernate延迟加载 ... -
Hibernate 子类中不能用session 操作数据库
2012-08-28 14:46 1747Object obj = this.g ... -
hibernate3 下载网址
2012-08-28 12:53 1945我的天啊,居然找个hibernate下载的地址也找了半天 h ... -
师父告诉我诀窍
2012-08-23 16:53 1526<value>classpath*:com ... -
spring 整合 hibernate
2012-07-28 10:41 15011.闲话少说了,先看版本吧。 2.在看要导入的包吧: ... -
使用spring的hibernateTemplate的方法 (转)
2012-07-24 17:12 1543使用spr ... -
hibernate 增删改查
2012-07-24 00:07 1874mysql中库表News,字段如下 id | i ... -
hibernate的对象映射配置文件中属性的介绍和说明
2012-03-04 13:45 1698持久化对象之间一对一的关联关系是通过one-to-one 元 ... -
HIbernate主键生成策略详解 (转)
2012-03-04 13:39 1749HIberna ... -
hibernate 复习 单向一对一的实现
2012-03-03 15:38 1475hibernate中单向一对一实现有三种方式:主键关联, ... -
hibernate 复习--demo
2012-03-02 20:40 1560今天晚上,搞好了hibernate的demo了,明天开始就是搞 ... -
HibernateDaoSupport与JdbcDaoSupport
2011-12-30 07:38 17142011年11月07日 星期一 ... -
hibernage getcurrentsession
2011-12-28 18:56 1587org.hibernate.Hibe ... -
hibernate开发资料学习资料
2011-12-28 07:42 1548http://dev.21tx.com/java/struts ... -
hibernate one to many lazy 常见错误解决
2011-06-26 20:17 2614解释一个关于Hibernate l ... -
hibernate的增删改查
2011-06-25 22:03 1860package com.endual.test; impor ... -
frameset
2011-05-25 09:43 1092<a href=url target=_blank> ... -
Hibernate+Spring+Struts2+ExtJS开发CRUD功能
2011-05-17 08:56 4837http://blog.csdn.net/myloon/arc ...
相关推荐
下面我们将详细介绍 Hibernate 配置文件的结构和内容。 一、hibernate.cfg.xml 文件 hibernate.cfg.xml 文件是 Hibernate 的基本配置文件,它包含了 Hibernate 与数据库的基本连接信息。在 Hibernate 工作的初始...
本文介绍了如何利用反射机制来修改Hibernate配置文件中的数据库连接信息,并通过自定义`ConnectionProvider`实现了对敏感信息的加密处理。这种做法不仅增强了应用程序的安全性,还提高了配置信息的管理效率。开发者...
接下来,我们将详细介绍Hibernate配置文件的相关知识点。 ### Hibernate配置文件概述 Hibernate是一个强大的对象关系映射(Object Relational Mapping, ORM)工具,用于将Java应用程序中的对象模型映射到数据库中...
标题"hibernate--5.Hibernate配置文件详解"暗示我们将探讨的是Hibernate 5版本的配置细节。这个版本引入了一些新特性和改进,同时也保持了对前一版本的兼容性。配置文件是Hibernate的核心部分,它定义了与数据库的...
《代码自动生成工具 Hibernate配置文件工具 MagicalTools 深度解析》 在现代软件开发过程中,提高效率和减少重复劳动是至关重要的。为此,开发者们不断寻求自动化工具的帮助,以简化繁琐的任务,如代码编写、配置...
在这个场景下,"ssh整合带hibernate配置文件"的标题表明我们要讨论如何在SSH架构中配置Hibernate,特别是在Spring框架内进行事务管理。 首先,让我们了解SSH框架的核心组件: 1. **Spring**:这是一个全面的Java...
本知识点主要聚焦于Hibernate的配置文件,它是使用Hibernate进行数据库交互的基础。 首先,我们需要理解Hibernate的核心配置文件——`hibernate.cfg.xml`。这个文件是Hibernate与数据库建立连接的桥梁,它包含了...
`hibernate1.cfg.xml`是Hibernate配置的核心文件,它定义了数据源、连接池、持久化类、缓存策略等关键信息。以下将逐个解析这些重要部分。 1. 数据源配置: 在`hibernate1.cfg.xml`中,首先需要配置数据源。对于...
标题"hibernate--5.Hibernate配置文件详解-2"暗示我们将继续上一节的内容,进一步深入理解Hibernate配置文件的各个方面。通常,Hibernate的配置文件以`hibernate.cfg.xml`的形式存在,它是项目初始化和连接数据库的...
在这个场景中,我们关注的是Hibernate的配置文件——`hibernate.cfg.xml`。这个文件是Hibernate应用的核心,它定义了数据源、SessionFactory、实体类映射等关键信息,使得Java对象可以直接与数据库进行交互。 首先...
**Hibernate配置文件详解** Hibernate,一个强大的Java持久化框架,为开发者提供了对象关系映射(ORM)服务,简化了数据库操作。在Hibernate中,`hibernate.cfg.xml`是核心配置文件,它定义了数据库连接、实体管理...
一、Hibernate配置文件 1. hibernate.cfg.xml:这是Hibernate的核心配置文件,用于定义数据源、持久化类、SessionFactory等相关设置。例如,你需要在其中指定数据库连接的URL、用户名、密码,以及JDBC驱动等信息。...
`hibernate.properties`是Hibernate的核心配置文件,用于设定与数据库连接、缓存策略、事务管理等相关的重要参数。下面我们将详细探讨这个配置文件中的关键知识点。 1. **数据库连接配置** - `hibernate....
《Hibernate各类映射文件与配置文件模板》是一个包含多种Hibernate映射和配置示例的压缩包,用于帮助开发者理解和使用Hibernate框架。Hibernate是Java领域的一个流行的对象关系映射(ORM)框架,它允许开发者用面向...
### Hibernate配置文件元素详解 #### 一、概述 在SSH(Spring+Struts+Hibernate)框架中,Hibernate作为持久层框架扮演着非常重要的角色。它能够实现对象关系映射(ORM),将Java对象映射到数据库表上。为了正确地...
下面我们将深入探讨Hibernate配置文件JAR包中的关键知识点。 1. **hibernate.cfg.xml**:这是Hibernate的核心配置文件,包含了数据库连接参数、事务管理、缓存配置等信息。例如,`driver_class`指定数据库驱动,`...
Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者用面向对象...这个“hibernate完整配置文件”压缩包应该包含了所有必要的配置和示例,是初学者和有经验的开发者深入理解Hibernate配置的宝贵资源。
本压缩包“根据hibernate配置文件生成数据库.zip”包含了一些关键资源,帮助开发者理解如何使用Hibernate工具hbm2ddl自动生成数据库结构。以下是对这些资源的详细解释: 1. **使用Hibernate的工具hbm2ddl根据你的...