Hibernater
攻城的蒂巴格
这个作者很懒,什么都没留下…
展开
-
Hibernate中的session.load(class,id)参数问题
Hibernate Session 的 读取API( Object get(Class clazz, Sesializable id);)在JDK 1.5中,向这个函数传入的第二个参数是String , int ,long 都行。hibernate把几乎所有的东西都看成对象,你建表的时候id虽然用的是int但在配置文件中生成默认的就是Integer类型,再比如bigint就是Long,可见他的对象转载 2012-03-26 14:29:04 · 4054 阅读 · 1 评论 -
hibernate uniqueResult方法
如果查询返回多个值用list()方法[java] view plaincopyprint?public void testQuery(){ Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSes转载 2012-07-26 10:58:41 · 38364 阅读 · 0 评论 -
Hibernate多事务并发访问控制
Hibernate--多事务并发访问控制 原文:http://javacrazyer.iteye.com/blog/808377 在并发环境,一个数据库系统会同时为各种各样的客户程序提供服务,也就是说,在同一时刻,会有多个客户程序同时访问数据库系统,这多个客户程序中的失误访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种各样的并发问题的发生,这些并发问题可归转载 2012-07-26 10:55:50 · 1719 阅读 · 0 评论 -
Hibernate的三种延迟加载
持久态:对象于数据库记录建立对应关系并保持同步。对象被绑定在持久化上下文当中,今后它的任何状态变化、数据变更均处于工作单元的管理之下,这就是持久态。session.load在hibernate3.2中提供的默认延迟加载方式,我觉得load出来的是一个代理,也可以说是持久态。 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操原创 2012-07-27 13:11:22 · 1700 阅读 · 1 评论 -
Hibernate三态
实体对象的状态及转化: 有了上面关于Hibernate缓存的知识,我们再来介绍实体对象的状态就非常容易理解了。 A:自由态对象: 当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,如下: Customer customer=new Customer(“zx”,27,images); 这时customer对象就处于自由状态,为什么说custom转载 2012-07-27 13:20:39 · 700 阅读 · 0 评论 -
Hibernate基本的增删改查
1:Hibernate的insert操作 Session session= HibernateSessionFactory.getSession(); News news = new News(); news.setContent("my content"); news.setTit原创 2012-07-27 13:42:42 · 1118 阅读 · 0 评论 -
Hibernate一对多实例
1 先建表create table student(sid varchar ( 32 ) not null primary key, sname varchar ( 16 ), sage varchar ( 16 ),)create table book(bid varcha转载 2012-07-27 16:01:39 · 597 阅读 · 0 评论 -
Hibernate遇到的问题
设计Student、Teacher表 多端Student有外键关联Teacher在做级联删除测试的时候出现一个很想不明白的问题: Session session1 = sf.openSession(); Transaction tran = session1.beginTransaction(); Teacher t = new T原创 2012-07-28 09:40:52 · 600 阅读 · 0 评论 -
Hibernate多对多操作步骤
== Hibernate_ManytoMany_(AssociationMapping之一) (一) 关联映射准备步骤: 1)Table加中间表,加关联字段。无需建立主外键约束。 建立、、及中间表。 2)关联映射实现: 方案一)此时已有两个1对*,可以用【两个1对*】配置来实现。 缺点:配置复杂。原创 2012-07-28 13:27:33 · 2381 阅读 · 0 评论 -
hibernate-get和load方法异同
load和get一共是2个区别 先讲第一个 延迟加载load是true而get是false意思就是 load采用的是延迟加载的方式 而get不是,hibernate思想是 既然这个方法支持延迟加载 他就认为这个对象一定在数据库存在,在你声明 TFaq tfag2=(TFaq)sess.load(TFaq.class, 300); 这句时候,hibernate就干了一件事1.查询sess原创 2012-07-30 16:10:36 · 769 阅读 · 0 评论 -
session.createQuery()与createSQLQuery()区别
createQuery与createSQLQuery两者区别是:前者用的hql语句进行查询,后者可以用sql语句查询 前者以hibernate生成的Bean为对象装入list返回 后者则是以对象数组进行存储 所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便 突然发现createSQL转载 2012-09-11 14:40:52 · 2623 阅读 · 0 评论 -
Hibernate uniqueResult方法的使用
以前写代码,总免不了编写登陆部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现。 public User get(String id){ Session session=HibernateUtil.getSessionFactory().openSession(); String hql="from User u原创 2012-09-15 14:49:39 · 2175 阅读 · 0 评论 -
Hibernate缓存机制
缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,把本来存在硬盘上的东西,在内存上临时开辟一块空间存储,这块空间称为缓存,从而提高应用程序的运行性能. Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理原创 2012-07-25 16:47:48 · 501 阅读 · 0 评论 -
事务并发访问问题
第一类丢失更新 A事务撤销时,把已经提交的B事务的更新数据覆盖了。这种错误可能造成很严重的问题,通过下面的账户取款转账就可以看出来:时间取款事务A转账事务BT1开始事务 T2 开始事务 T3查询账户余额为1000元原创 2012-08-08 11:21:19 · 1052 阅读 · 0 评论 -
hibernate拦截器的用途之一
举个实际的例子, 偶们有时候会需要做Audit: 一条记录什么时候被谁创建, 以及最近由谁在何时更新, 以前的做法是在代码里面各处分散地写上: Java代码 entity.setCreated(new Date(););; entity.setCreatedBy(userId);; session.save(entity);; 这样重复的代码原创 2012-08-06 23:25:38 · 1691 阅读 · 0 评论 -
由hbm.xml和pojo类生成数据库表失败(求大侠赐招)
一下是我写的一个类,该类通过读取configur.xml文件来生成相应的数据表结构,但是在运行的时候一切正常,后台无任何错误,但是Oracle中依旧无法成功的把表创建出来。package com.shop.dao;import java.io.File;import org.hibernate.HibernateException;import org.hibernate.Sess原创 2012-03-28 16:13:44 · 1852 阅读 · 1 评论 -
hibernate3配置详解
bernate3数据库插入操作的一个小例子 hibernate 是一个orm框架, o体现在object,既model类,r体现在relationship 既关系, hibernate是一个object和relationship之间转化的桥梁 今天用mysql数据库做了一个hibernate插入数据库的操作 在mysql中新建表 people create t转载 2012-03-16 13:46:09 · 1368 阅读 · 0 评论 -
Hibernate的增删改查
Hibernate 语法:Hibernate的所有的操作都是通过Session完成的.基本步骤如下:1:通过配置文件得到SessionFactory: SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();2:通过SessionFactory 得到一个S转载 2012-03-16 13:41:17 · 764 阅读 · 0 评论 -
hibernate常见异常
1. ClassNotFoundException: org.hibernate.hql.ast.HqlToken 解决办法:在hibernate配置文件中加入oracle.jdbc.driver.OracleDriver2.unknown Oracle major version[0]java.lang.NoClassDefFoundError: org/hibernate/c原创 2012-03-16 13:49:28 · 1095 阅读 · 1 评论 -
Hibernate配置文件在单元测试中的应用
Hibernate 是一个流行的开源对象关系映射工具,单元测试和持续集成的重要性也得到了广泛的推广和认同,在采用了Hibernate的项目中如何保证测试的自动化和持续性呢?本文讨论了Hibernate加载其配置文件hibernate.properties和hibernate.cfg.xml的过程,以及怎么样将hibernate提供的配置文件的访问方法灵活运用到单元测试中。 介绍转载 2012-03-22 09:49:09 · 716 阅读 · 0 评论 -
Hibernate一对一操作
[Hibernate的连表操作] 多个实体(表)的关联关系,继承关系,如何用Hibernate实现级联操作? 关联关系: 继承关系: 级联操作: 级联的增、删、改; 连表查询; 在PO中要添加关联属性 ,在映射配置中要添加关联配置,表达关联关系。 表达关联关系。 优点: ①表间耦合原创 2012-03-22 14:51:49 · 1254 阅读 · 0 评论 -
Hibernate主键生成策略
Hibernate为优秀的持久层框架的代表。在传统的JDBC+JavaBean操作中,实体对象都由程序员自己去封装,然后返回。而在Hibernate中,采用对象关系映射『ORM』,大大简化了对数据库的操作.在数据库的设计和操作中,我们通常会给表建立主键。 主键,可以分为自然主键和代理主键。 自然主键表示:采用具有业务逻辑含义的字段作为表的主键。比如在用户信息表中,采用用户的身份转载 2012-03-22 15:15:28 · 772 阅读 · 0 评论 -
HibernateTemplate实例应用
Dao: package com.test.dao; import com.test.model.Customer; public interface UserDao { public void Add(Customer c); }DaoImpl:原创 2012-07-19 14:43:29 · 2571 阅读 · 0 评论 -
Spring基于HibernateTransactionManager的事物管理
Dao: package com.test.dao; import com.test.model.Customer; public interface UserDao { public void Add(Customer c); }DaoImpl:原创 2012-07-20 08:44:58 · 14335 阅读 · 0 评论 -
Hibernate与数据库触发器协同工作
数据库触发器是数据库的一种监听机制,这种机制会监视数据库中的某种特定的操作,当这种操作发生时,触发器就会执行,并且会完成一些特定的逻辑,在数据库中能够激发触发器的操作有:insert,update,delete三种,当这三种操作发生在一条记录或者某个特殊字段上,如果在该记录或者该字段上有触发器,那么触发器便会被激发执行。但是当Hibernate与触发器协同执行时,会造成两个问题。第一:触发器使转载 2012-08-06 21:08:29 · 840 阅读 · 0 评论 -
Hibernate拦截器(Interceptor)与事件监听器(Listener)
拦截器(Intercept):与Struts2的拦截器机制基本一样,都是一个操作穿过一层层拦截器,每穿过一个拦截器就会触发相应拦截器的事件做预处理或善后处理。 监听器(Listener):其实功能与拦截器是相似的,但它实现原理不同,它是为每一个事件注册一个或多个监听器,一旦事件发生,则事件源通知所有监听该事件的监听器,然后监听器处理通知(观察者模式)。 拦截器 Hibe转载 2012-08-06 21:24:04 · 1364 阅读 · 0 评论 -
mybatis学习笔记(一)helloworld
前言:之前一直使用hibernate在作为数据层的持久化框架,也用过mybatis,但是觉得要写的sql太多很麻烦, 所以使用的不多 。 现在数据层使用的是mybatis,前端mvc框架用的是他们自己研发的webx3框架,所以决定研究一下这两个框架。 首先研究mybatis ,学习教程是官方的《MyBatis-3-User-Guide-Simplified-Chinese》,去myba转载 2016-05-11 18:10:01 · 726 阅读 · 0 评论