Hibernate
文章平均质量分 63
杨文寿
个人网站:www.yangwenshou.com
展开
-
Hibernate SQL 方言
你应当总是为你的数据库将 hibernate.dialect 属性设置成正确的 org.hibernate.dialect.Dialect 子类。如果你指定一种方言,Hibernate 将为上面列出的一些属性使用合理的默认值,这样你就不用手工指定它们。Hibernate SQL 方言(hibernate.dialect)RDBMSDialect原创 2012-04-18 22:30:43 · 1579 阅读 · 0 评论 -
JPA 注解
1、@Entity(name="EntityName")必须,name为可选,对应数据库中一的个表 2、@Table(name="",catalog="",schema="")可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指原创 2012-05-13 07:09:37 · 1730 阅读 · 3 评论 -
Hibernate的批量操作
在实际的操作中,会经常的遇到批量的操作,使用Hibernate将 100条记录插入到数据库的一个很自然的做法可能是这样的Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i<100; i++ ) { User user原创 2012-05-17 08:02:04 · 4893 阅读 · 0 评论 -
Hibernate 总结
一、 基础知识① Hibernate是对象/关系映射(Object/Relation Mapping)的解决方案。 ② Hibernate架构● POJO类● hibernate.cfg.xml● *.hbm.xml● Hibernate应用 二、 几个重要的类● Configuration类 (负责原创 2012-05-17 07:53:07 · 1383 阅读 · 0 评论 -
自定义一个方言类——Hibernate Dialect
该类需要继承与我们使用的数据库相应的方言类。比如:如果我们用的是MySql(版本为5.x.x),我们需要继承“org.hibernate.dialect.MySQL5Dialect”;如果我们使用的是DB2,那么我们应该继承“org.hibernate.dialect.DB2Dialect”;我用的是SqlServer2008,所以我要继承“org.hibernate.dialect.SQLSer原创 2012-07-04 18:46:58 · 6169 阅读 · 1 评论 -
所有查询的结果自动封装成map返回
JPA的出现, 统一了逐渐混乱起来的Java ORM产品, 这无疑是件好事情, 包括toplink, hibernate, kodo,openJPA 等几种ORM实现现在都已经兼容支持JPA了.Hibernate作为一个广为人知的ORM/JPA实现, 是我比较喜欢并熟悉的一个, 因此把Glassfish默认的Toplink替换成了Hibernate. JPA的persistence操作是原创 2012-07-04 18:31:42 · 13643 阅读 · 2 评论 -
Struts,Spring,Hibernate面试题总结
Hibernate工作原理及为什么要用? 原理: 读取并解析配置文件读取并解析映射信息,创建SessionFactory打开Sesssion创建事务Transation持久化操作提交事务关闭Session关闭SesstionFactory为什么要用: 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。Hibernate是一个基于JDBC的原创 2012-07-01 08:23:22 · 2121 阅读 · 1 评论 -
MVC三层模型(struts+spring+hibernate)总结
简单的说:struts 控制用的hibernate 操作数据库的spring 用解耦的详细的说:STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 ActionServlet, 而 ActionServlet 的核心就是 Struts-confi g.xml. 主要控制逻辑关系的处理 .hibernate 是数据持原创 2012-07-01 08:29:23 · 7940 阅读 · 1 评论 -
Hibernate session FlushMode的五种设置
Hibernate session FlushMode有五种属性: 1、NEVEL:已经废弃了,被MANUAL取代了 2 MANUAL: 如果FlushMode是MANUAL或NEVEL,在操作过程中hibernate会将事务设置为readonly,所以在增加、删除或修改操作过程中会出现如下错误 org.springframework.dao.InvalidDataAccessAp原创 2012-07-18 09:34:32 · 1679 阅读 · 0 评论 -
Cookie和会话状态session的工作原理
解读sessionsession是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为"Session Cookie",以区别Persistent Cookies(通常所说的Cookie).原创 2012-09-17 20:04:54 · 1204 阅读 · 0 评论 -
SQLFuntion\SQLFuntionTemplate
public interface SQLFunctionProvides support routines常规的 for the HQL functions as used in thevarious不同的 SQL Dialects方言 Provides an interface for supporting various HQL functions that aretran翻译 2012-05-11 10:16:03 · 876 阅读 · 0 评论 -
HQL调用自定义函数
1.创建自己的方言public class DialectRegExp extends Oracle9iDialect{public DialectRegExp(){super();this.registerFunction("my_xy", new SQLFunctionTemplate(new IntegerType(),"get_sal(?1)"));}}原创 2012-05-08 16:03:42 · 4781 阅读 · 0 评论 -
Hibernate 三种状态
在Hibernate中有三种状态,对它的深入理解,才能更好的理解hibernate的运行机理,刚开始不太注意这些概念,后来发现它是重要的。对于理解hibernate,JVM和sql的关系有更好的理解。对于需要持久化的JAVA对象,在它的生命周期中有三种状态,而且互相转化。1, 临时状态(Transient):用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临原创 2012-04-21 23:54:51 · 1053 阅读 · 0 评论 -
Hibernate关联关系映射目录
请点击查看详细信息-----Hibernate关联关系映射目录│ ├─单向关联│ ├─ 一对一外键单向关联│ ├─ 一对一主键单向关联│ ├─ 一对一连接表单向关联│ ├─ 一对多外键单向关联│ ├─ 一对多连接表单向关联│ ├─ 多对一外键单向关联│ ├─ 多对一连接表单向关联│ └─ 多对多单向关联└─双向关联原创 2012-04-29 22:06:04 · 896 阅读 · 0 评论 -
Hibernate 配置属性
属性名用途hibernate.dialect允许 Hibernate 针对特定的关系数据库生成优化的 SQL 的org.hibernate.dialect.Dialect 的类名。例如:full.classname.of.Dialect在大多数情况下,Hibernate 可以根据 JDBC 驱动返回的 JDBC metadata选择正确的 org.h原创 2012-04-18 22:17:22 · 835 阅读 · 0 评论 -
Hibernate 的类型
基本值类型内置的 basic mapping types 可以大致地分类为:integer, long, short, float, double, character, byte, boolean, yes_no, true_false这些类型都对应 Java 的原始类型或者其封装类,来符合(特定厂商的)SQL 字段类型。boolean, yes_no 和 true_原创 2012-04-18 22:33:16 · 4140 阅读 · 0 评论 -
Hibernate Pk生成策略
可选的 子元素是一个 Java 类的名字,用来为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化参数,用 元素来传递。 <param name="table">uid_table <param name="column">next_hi_value_column原创 2012-04-18 22:25:50 · 1713 阅读 · 0 评论 -
Hibernate 集合
Hibernate 定义了三种基本类型的集合:值数据集合一对多关联(One-to-many Associations)多对多关联这个分类是区分了不同的表和外键关系类型,但是它没有告诉我们关系模型的所有内容。 要完全理解他们的关系结构和性能特点,我们必须同时考虑“用于 Hibernate 更新或删除集合行数据的主键的结构”。因此得到了如下的分类原创 2012-05-02 23:13:02 · 1834 阅读 · 0 评论 -
Hibernate 上下文相关的会话
org.hibernate.context.CurrentSessionContext 接口的 Javadoc,那里有关于它的契约的详细讨论。它定义了单一的方法,currentSession(),特定的实现用它来负责跟踪当前的上下文相关的会话。Hibernate 内置了此接口的三种实现:org.hibernate.context.JTASessionContext:当前会话原创 2012-05-05 10:39:33 · 1161 阅读 · 0 评论 -
Hibernate 抓取策略
当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate 使用 抓取策略(fetching strategy) 获取关联对象。抓取策略可以在 O/R 映射的元数据中声明,也可以在特定的 HQL 或条件查询(Criteria Query)中重载声明。Hibernate3 定义了如下几种抓取策略:连接抓取(Join fetching原创 2012-05-04 16:43:25 · 2140 阅读 · 1 评论 -
Hibernate中悲观锁和乐观锁
hibernate中经常用到当多个人对同一数据同时进行修改的时候,会发生脏数据,造成数据的不一致性,解决办法是可以通过悲观锁和乐观锁来实现。 悲观锁:在数据有加载的时候就给其进行加锁,直到该锁被释放掉,其他用户才可以进行修改,优点:数据的一致性保持得很好,缺点:不适合多个用户并发访问。当一个锁住的资源不被释放掉的时候,这个资源永远不会被其他用户进行修改,容易造成无限期的等待。 乐观锁:就是原创 2012-05-05 10:36:37 · 1425 阅读 · 0 评论 -
Hibernate 中get, load 区别
1. 对于get方法,hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然后在二级缓存中查找,还没有就查询数据库,数据库中没有就返回null。这个相对比较简单,也没有太大的争议。主要要说明的一点就是在这个版本中get方法也会查找二级缓存! 2. load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true),分情况讨论:原创 2012-04-22 00:01:26 · 1725 阅读 · 4 评论 -
Hibernate中的命名查询
什么是命名查询?Hibernate允许在映射文件中定义字符串形式的查询语句,这种查询方式成为命名查询使用命名查询有什么好处?由于使用Hibernate的HQL常常需要在Java代码中写字符串查询语句,HQL混杂在代码之间,破坏代码可读性,通过使用命名查询,可以使业务逻辑和查询语句分离,使您专注于查询,而避免了 SQL 或者 HQL 代码分散于整个应用程序中的情况。可以应用命名查原创 2012-11-27 14:17:50 · 1360 阅读 · 0 评论