Hibernate入门
文章平均质量分 68
__NULL
这个作者很懒,什么都没留下…
展开
-
《精通Hibernate》学习(1)
转自:http://blog.csdn.net/yu422560654/article/details/7028748 《精通Hibernate》学习(1)——第一个Hibernate应用 一、在Java应用中使用Hibernate的步骤创建Hibernate的配置文件创建持久化类创建对象-关系映射文件通过Hibernate AP转载 2012-10-18 22:14:43 · 644 阅读 · 0 评论 -
Spring3整合Hibernate3.6之一:简单CRUD
本来是想拿Spring整合Hibernate4的,事实证明我道行尚浅 未遂……看到这个异常,且在用Hibernate4的同学就要考虑Hibernate的版本问题了(解决完这个问题发现4里边把HibernateTemplate取消掉了,所以就没再死扣)。org.springframework.beans.factory.BeanCreationException: Error c原创 2012-11-10 21:55:17 · 3078 阅读 · 1 评论 -
Spring3整合Hibernate3.6之二:用AOP管理事务处理
整合以后可以借助Spring的AOP来管理Hibernate的事务1.先界定一个事务的边界,这里用的是“ add* ”2.再把两件事情都放在一个service的操作中,第一件事情执行成功后,第二件事情抛出异常。3.结果Spring抓取到异常后,把两步操作全都回滚1.定义事务边界applicationContext-common.xml中增加以下配置:其中原创 2012-11-11 09:26:42 · 1221 阅读 · 0 评论 -
Hibernate基础之五:自增主键@GeneratedValue、@SequenceGenerator
一:使用默认的自增主键主键自增有好几种策略:identity是MySql对应的自增、sequence对应oracle的自增序列,native是根据所连接的数据库自动选择上诉两个或hilo策略在 @Id 后边加上 @GeneratedValue,就相当于调用了native策略(可以指定@GeneratedVlaue(strategy=GenerationType.IDE原创 2012-11-04 23:26:34 · 10371 阅读 · 0 评论 -
Struts2+Spring3+Hibernate3.6整合之一:用户管理
前些天弄了一个Struts2+Spring3+iBatis的整合,第一部分:http://blog.csdn.net/ruantao1989/article/details/8143899第二部分:http://blog.csdn.net/ruantao1989/article/details/8143979第三部分:http://blog.csdn.net/ruantao1989/article原创 2012-11-11 17:52:12 · 1633 阅读 · 0 评论 -
Hibernate分页查询
通常使用的Hibernate通常是三种:hql查询,QBC查询和QBE查询:1、QBE(Qurey By Example)检索方式QBE是最简单的,但是功能也是最弱的,QBE的功能不是特别强大,仅在某些场合下有用。一个典型的使用场合就是在查询窗口中让用户输入一系列的查询条件,然后返回匹配的对象。QBE只支持=和like比较运算符,无法不大区间值,及其或的匹配。在这种情况下,还是采用HQL检转载 2012-12-04 22:37:31 · 2604 阅读 · 0 评论 -
hibernate关联映射与集合映射详解
hibernate关联映射与集合映射详解一、单向多对一关系:在多的一端加入: lazy="false" fetch="join"/>如果classes在实体类中是对象类型,则在多的一方中拥有外键(也就是classes类映射出表的主键); 如果classes在实体类中是对象类型,那么在<many-to-one />中还要加 cl转载 2012-12-26 21:23:07 · 770 阅读 · 0 评论 -
ManyToOne的xml配置 及 解决N+1问题
一:ManyToOne的cfg.xml配置1.实体,省略setter&getterpublic class User implements Serializable{ private static final long serialVersionUID = 1L; private Integer id;// 编号 private String account;// 用户名原创 2012-12-31 23:04:52 · 2411 阅读 · 0 评论 -
Hibernate多对一单向关联
单向多对一关联 在关系型数据库理论中,“多对一”关联同于“一对多”关联,且为了消除数据冗余,在两个关系之间不存在“多对多”关联,“多对多”关联要通过连接表来实现。因此在关系型数据库中只有“一对一”和“一对多(多对一)”,且都是单向的。而在hibernate当中,为了保证关联双方的映射可以通过多种方式进行,“单向一对多”关联和“单向多对一”被认为是两种不同的关联,其主要区别是在于哪个表的转载 2012-12-31 16:34:04 · 730 阅读 · 0 评论 -
hibernate缓存
1.一级缓存是session缓存 , 就是同一个session中查询统一结果时 hibernate会直接去内存中读相同的数据通过在实体类头上加入@Cache实现2.二级缓存是sessionFactory缓存 ,开启以后 同一sessionFactory中的不同session在加载同一数据时,不需要第二次查询需要在hibernate.cfg.xml中开启二级缓存, (ca原创 2012-12-18 14:57:49 · 509 阅读 · 0 评论 -
HibernateTemplate的常规用法
HibernateTemplate 提供了非常多的常用方法来完成基本的操作,比如增加、删除、修改及查询等操作,Spring 2.0 更增加对命名 SQL 查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate 的常规用法,就可完成大多数DAO对象的 CRUD操作。 下面是 HibernateTemplate的常用方法。 delete(Object enti转载 2012-11-09 22:35:42 · 2215 阅读 · 0 评论 -
Hibernate基础之十:一对多关联的CRUD__@ManyToOne(cascade=(CascadeType.ALL))
一:Group和Users两个类假定一个组里有n多用户,但是一个用户只对应一个用户组。1.所以Group对于Users是“一对多”的关联关系@OneToManyUsers对于Group是“多对一”@ManyToOne2.CRUD时候,希望是能从具体用户Users查到其对应的Group,反过来也能通过Group查到具体Users,所以是双向关联(所以要用mappedBy去除冗余信原创 2012-11-07 22:45:33 · 4805 阅读 · 0 评论 -
Hibernate基础之十一:树状结构遍历
一:TreeNode树结构的一个节点,主键是ID,具体内容是value双向连接俩外键,分别是父节点pid,和子节点的集合children(1+N问题用fetch=FetchType.LAZY 或在HQL中加 from XXX left join fetch ....解决)@Entity@Table(name="t_TreeNode")public class TreeN原创 2012-11-08 16:54:41 · 927 阅读 · 0 评论 -
Hibernate基础之一:Hibernate4.1.6第一个程序
Hibernate4和3在细节上有挺多不一样的地方,今儿就吃了苦头,花了一两个小时解决两个环境问题引起的Exception。比如Could not parse mapping document from resource这个异常是我照着英文文档他写的类才改过来的。 先贴出源码吧,有几个异常网上没有正确的解决方案,用 Hibernate4.1.x出同样问题的先粘走试试,原创 2012-10-17 01:30:02 · 832 阅读 · 0 评论 -
Hibernate基础之二:第一个Annotation配置
Annotation配置的优势就是不用去写XXXXXX.hbm.xml了,只要在类名和主键前边加入相应的Annotation就能达到配置的效果,据说新的iBatis也支持 Annotation,回头要试一下。1.类声明之前加入:@Entity,(javax的包)(@Table指定表)2.get主键()方法之前加入:@Idimport javax.persiste原创 2012-10-17 23:03:06 · 482 阅读 · 0 评论 -
Hibernate基础之三:log、单例辅助类
一:logHibernate自带的jar包用的是slf-api,用这个api再加上一个适配器,就能用原来的log4j记录日志用的加包是:1.slf4j-api-1.6.1.jar(Hibernate带的) 2.slf4j-log4j12-1.6.1.jar(slf4j-1.6.1里提供的适配器)3.log4j-1.2.17.jar(原来的log4j)4.还要加原创 2012-11-04 15:04:40 · 918 阅读 · 0 评论 -
Hibernate基础之四:基础配置@Table@Column@Temporal@Transient@Enumerated
一.基础配置hibernate.cfg.xml中:1.hbm2ddl.auto:create:没有就新建、update:可增加字段2.show_sql:打印sql语句出来3.format_sql:打印时分行显示,看着清晰点二.@Table、 @Column、 @Temporal、 @Transient、 @Enumerated这几个Annotatio原创 2012-11-04 16:10:46 · 2902 阅读 · 0 评论 -
Hibernate基础之六:联合主键@EmbeddedId
一:联合主键类联合主键就是靠多个属性一起来决定主键所以要新建主键类,其中要实现1.Serializable //主键需要传递2.equals(Object o) //靠主键区分pk,所以必须3.hashCode()//根据pk的哈希码去查找,所以必须public class TeacherPK implements Serializable{ private原创 2012-11-05 11:01:29 · 1228 阅读 · 0 评论 -
Hibernate基础之八:一对一单/双向,主/外键关联 @OneToOne@JoinColumn
1:一对一,单向,外键关联Student和stusentIDCard两张表是一对一的关系,即一个学生只有一个学生证,一个学生证只对应一个学生Stuent表里有个外键要参考StudentIDCard表现类上就是Student实例里聚合一个stusentIDCard@Entitypublic class Student { private int id; private S原创 2012-11-06 16:42:36 · 4645 阅读 · 0 评论 -
Hibernate基础之七:对象三种状态、增删改查时对应的状态变化
一:SessionopenSession() 和getCurrentSession():openSession() 永远打开新session,需要session.close();getCurrentSession() 如果现在有session,从现有的取一个hibernate.current_session_context_class:配成 thread是以一个连接原创 2012-11-05 17:43:09 · 1140 阅读 · 0 评论 -
Hibernate基础之九:多对多,单/双向关联 @ManyToOne @OneToMany
1.组件映射,一个类中包含另一个组件上@Eembeded2.多对一,单向关联“多的”聚合“一的”1个实例,Group--Useruser的getGroup上加@ManyToOne@Entity@Table(name="t_Group")public class Group { private int id; private String nam原创 2012-11-07 00:26:48 · 1659 阅读 · 0 评论 -
Hibernate基础之十二:HQL常用语句
1+N:1+N问题用:fetch=FetchType.LAZY 或在HQL中加 (from XXX left join fetch ....)解决FetchType适合于不取子类的时候, left join fetch适合于马上要子类,但不能执行太多SQL语句影响效率的时候import org.hibernate.Query;//不是javax的原创 2012-11-09 16:35:04 · 802 阅读 · 0 评论 -
hql分页( HibernateCallback接口 )
public List querySQL(final String hql,final Class entityClass) { try{ return this.getHibernateTemplate().execute(new HibernateCallback>() { @Override public List doInHibernate(Session转载 2013-04-28 14:40:51 · 1023 阅读 · 0 评论