个人作品,欢迎下载 hibernate固强,然用之稍烦.近常思于此而略有心得,故作此小东东以简化之.限予之技而难逃龌龊之举,望各大虾批评指正 此套件虽然小,但是可以帮助你在实际项目中提高hibernate的使用速度 下载地址为http://www.cd-accp.net/web/hbdao.rar 此套件主要用于帮助开发人员在hibernate环境下开发数据访问层 为了使用此套件,你必须具备JDK1.5(或更高),并且设置你的编译器以支持5.0代码语法 此套件提供以下功能 1.多H...
by BabyFish-CT - 论坛技术交流区 - 2006-10-19 17:36:47 阅读(1377) 回复(0)
hibernate的透明持久化用起来非常舒服,有时甚至忘记了数据库的存在。我身边的朋友经常会分不清save、saveOrUpdate、 update的区别,lock、merge、replicate、refresh、evict甚至不知道是干什么用的。而且关于实体对象的生命周期也有很 多概念不清,分不清transient、persistent、detached的区别,只是知道PO、VO这样的通俗叫法。其实这些概念都很简单, hibernate的javadoc写的都很清楚,只需看看就能明白。所以我花了些时间将Hib...
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和...
Java应用程序与hibernate之间的主要运行时接口。它是抽象了持久化服务概念的核心抽象API类。 session的生命周期绑定在一个物理的事务(tansaction)上面。(长的事务可能跨越多个数据库事物。) session的主要功能是提供对映射的实体类实例的创建,读取和删除操作。实例可能以下面三种状态存在: 自由状态(transient): 不曾进行持久化,未与任何session相关联 持久化状态(persistent): 仅与一个session相关联 游离状态(detach...
/** * 将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象。 * 如果该session中没有关联的持久化对象,加载一个。 * 如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。 */ public Sysuser merge(Sysuser detachedInstance) { log.debug("merging Sysuser instance"); try { Sysuser result = (Sysuser) gethibernateTempl...
Spring的hibernate的支持类hibernateDAOSupport和hibernateTemplate在使用的时候感觉分别有一些问题 (也可能Spring团队认为这样可以提供更大的灵活性?) hibernateDAOSupport: 其中的gethibernateTemplate方法不知为什么设置成了publice 这样如果DAO层的dao实现类extends了 hibernateDaoSupport 在service就可以绕过DAO层提供的数据访问接口而自己写HQL来访问数据库 这就好像在过去使用JDBC制作的DAO层的时候在service自己写...
点了synchronize files之后mapping.base包出现了,base类也好好的,但没有出现mapping.dao包,只是在mapping包下出了一个和数据表同名的类friends.java: package mapping; import mapping.base.BaseFriends; public class Friends extends BaseFriends { private static final long serialVersionUID = 1L; /*[CONSTRUCTOR MARKER BEGIN]*/ public Friends () { super(); } /** * Constructor for primary key */ public Fri...
使一个游离对象转变为持久化对象。例如以下代码在session1中保存了一个Customer对象,然后在session2中更新这个Customer对象: Customer customer = new Customer(); customer.setName("Tom"); session session1 = sessionFactory.buildsession(); Transaction tx1 = session.beginTransaction(); session1.save(customer); tx1.commit(); session1.close(); ...
delete()方法用于从数据库中删除与Java对象对应的记录。如果传入的参数是持久化对象,session就计划执行一个delete语句。如果传 入的参数是游离对象,先使游离对象被session关联,使它变为持久化对象,然后计划执行一个delete语句。值得注意的是,session只有在清 理缓存的时候的才执行delete语句。此外,只有当调用session的close()方法时,才会从session的缓存中删除该对象。 例如以下代码先加载一个持久化对象,然后通...
今天在工程中需要对数据库中的数据更新,使用hibernate操作。 连续进行多次更新操作时,发现第一次成功,但以后似乎就不稳定了。 如果第一次更新后,立即进行再更新,肯定无法更新,隔一段时间似乎可以。 怀疑是hibernate中session的问题,使用hibernate自动生成save()进行更新,代码如下 添加红色部分后,一切正常。 不知是否合理,望高手赐教。 session session=hibernatesessionFactory.getsession(); Transaction tx=sessi...
/************************ 名称: 购物车类 作者:kevin 2005.7.5 描述:将session封装入一个简单的购物车类之中 每件商品要求具备id,name,price,count四个属性, 如果要加新的属性,请修改相应部分。 *************************/ class ShopCart { var $SortCount; //商品种类数 var $TotalCost; //商品总价值 var $Id; //每类商品的ID(数组) var $Name; //每类商品的名称(数组) var $Price; //每类商...