package mypack;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import sessionfactory.HibernateSessionFactory;
public class test2 {
/**
* @param args
*/
public static void main(String[] args) {
//储存插入记录的id
int insertid;
//新建实例
TUser insertuser = new TUser();
insertuser.setName("name1");
insertuser.setResume("resume1");
//插入实例
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
session.save(insertuser);
insertid = insertuser.getId();
tx.commit();
session.close();
// 装载插入的实例
session = HibernateSessionFactory.getSession();
TUser user = (TUser) session.load(TUser.class, new Integer(insertid));
System.out.println("装载实例成功,id==>" + user.getId());
tx = session.beginTransaction();
// 删除插入的实例
String hql = "delete TUser where id = "+insertid;
Query query = session.createQuery(hql);
query.executeUpdate();
tx.commit();
// 读取删除的实例,抛出异常
user = (TUser) session.load(TUser.class, new Integer(insertid));
System.out.println("读取缓存中存放的id成功, id==>" + user.getId());
// 捕捉异常
try {
System.out.println(user.getName());
} catch (org.hibernate.ObjectNotFoundException e) {
System.out.println("代码user.getname()发生异常,因为该实例已经被删除");
System.out.println(e.toString());
System.out.println("结论:Query.execxuteUpdate()方法删除数据是缓存同步的");
}
session.close();
}
}
打印信息如下:
Hibernate: insert into tuser (name, resume) values (?, ?)
装载实例成功,id==>43
Hibernate: delete from tuser where id=43
读取缓存中存放的id成功, id==>43
Hibernate: select tuser0_.id as id0_, tuser0_.name as name0_0_, tuser0_.resume as resume0_0_ from tuser tuser0_ where tuser0_.id=?
代码user.getname()发生异常,因为该实例已经被删除
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [mypack.TUser#43]
结论:Query.execxuteUpdate()方法删除数据是缓存同步的
分享到:
相关推荐
本教程将基于“Hibernate初学者简单代码”这个主题,深入探讨Hibernate的基本概念、核心功能以及如何在实际项目中应用。 一、Hibernate简介 Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象...
SSH(Struts2、Spring、Hibernate)是一种...通过部署到Tomcat服务器,初学者可以了解和学习如何在实际环境中配置和使用Hibernate二级缓存。这将是一个不错的实践项目,有助于理解SSH框架和Hibernate缓存的工作原理。
本压缩包提供了一个基础的Hibernate入门示例,包括了必要的配置文件和测试代码,适合初学者学习理解Hibernate的工作原理。 1. **Hibernate概述** Hibernate是一个开源的ORM框架,它将Java类与数据库表进行映射,...
【标题】"最简单Hibernate工程代码"涉及到的是Java开发中的持久化框架Hibernate的入门级实践。Hibernate是一个强大的ORM(对象关系映射)框架,它允许开发者以面向对象的方式处理数据库操作,大大简化了数据库编程。...
6. **缓存机制**:讨论Hibernate的缓存策略,包括一级缓存和二级缓存,以及如何优化缓存性能。 7. **性能优化**:提供一些最佳实践和技巧,如延迟加载、批处理、连接池配置等,以提高Hibernate应用的性能。 8. **...
孙卫琴在书中分享了关于缓存策略(一级缓存和二级缓存)、延迟加载、批处理更新等提升Hibernate性能的技巧。同时,他还探讨了事务管理和并发控制,这些都是确保数据一致性和完整性的关键。 最后,书中的实战案例...
综上所述,"hibernate最简单源代码"示例将涵盖以上关键概念,帮助初学者了解如何使用Hibernate框架进行数据库操作。通过阅读和实践这些源代码,你可以更好地理解Hibernate的工作原理,为实际项目开发打下坚实的基础...
这份指南可能包含如何集成Spring框架、如何处理大数据量操作、如何在分布式环境中使用Hibernate、以及如何利用JPA(Java Persistence API)与Hibernate的交互等内容。此外,还可能涉及了错误处理和调试技巧,帮助...
尚硅谷_佟刚_Hibernate 课件及源代码" 描述简洁明了,表明这是针对Hibernate的一套完整学习资源,包括了课程讲解的PPT文件以及与课程相关的编程实践代码。通过这些材料,学习者可以系统地学习Hibernate的各个方面,...
通过学习Hibernate 5.2.9的源码,可以深入了解其内部实现,包括查询解析、结果集转换、缓存策略等细节,有助于提升开发技能。同时,了解并掌握这些知识点,将极大地提高Java应用的开发效率和质量。
总之,这个压缩包为初学者提供了一个快速上手Hibernate的环境,包含了必要的依赖,使得开发者可以直接开始构建基于Hibernate的Java应用,而无需花费大量时间在依赖管理上。通过学习和实践,你可以掌握如何使用...
【标题】"HibernateDemo"是一个基础的Hibernate项目,旨在为初学者提供学习Hibernate框架的起点。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作,消除了传统JDBC...
2. **第一级缓存与第二级缓存**:Hibernate如何实现对象的缓存机制,提高数据访问效率,并理解不同级别的缓存策略。 3. **事务管理**:了解Hibernate如何与JDBC或JTA协作,处理事务的提交、回滚和隔离级别。 4. **...
struts2+spring+hibernate3的简易图书管理系统,特别适合初学者集成! 实现了简单的分页和模糊查询。(基本上涵盖了开发ssh2的包),值得拥有哦! 注:数据库sql文件(mysql 5.5)在里面,要自己配好!
5. **二级缓存**:Hibernate支持二级缓存,可以提高性能,尤其是在读多写少的应用中。 在"struts2+hibernate3.3图书管理系统"项目中,这两个框架协同工作,实现图书的增删改查功能。Struts2负责接收用户的HTTP请求...
在JDBC(Java Database Connectivity)的基础上,Hibernate 提供了面向对象的编程模型,减少了与数据库交互时的繁琐代码,提高了开发效率。以下是关于Hibernate的一些关键知识点: ### 1. JDBC 的优缺点 **JDBC的...
- Caching:为了提高性能,Hibernate提供了缓存机制,如一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的缓存),可以通过插件如 EhCache 进行配置。 - Mappings:Hibernate通过XML或注解来定义...
在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,...
1. **JDBC与Hibernate比较**: Hibernate通过ORM简化了JDBC的繁琐操作,如手动编译SQL、设置参数、处理结果集等。 2. **懒加载与立即加载**: Hibernate提供了懒加载机制,只在需要时加载关联对象,提高性能。但需...