- 浏览: 254495 次
- 性别:
- 来自: 北京
最新评论
-
java_frog:
我之前resteasy用的3.6.0,周末过来降成3.1.0, ...
在本地环境ok,预发环境就老报这个,版本应该也没问题,有碰到过的人吗 -
yugouai:
另外还有可能是拿不到环境变量的,所以crontab的shell ...
linux下crontab定时任务不执行 -
wuchsh2013:
最好不要写在脚本里面,在执行脚本前设置权限。
linux下crontab定时任务不执行 -
原水小子:
给力哈~~~~~~~~~~~~~~
正则表达式限制输入框只能输入数字 -
qizhijun:
请问你找到原因了吗?我也遇到同样的问题。头疼好几天了。
java调用FlashPaper时printing failed for an unknown reason错误
★→→SessionFactory (org.hibernate.SessionFactory) 包含已经编译的映射(mappings),是制造session的工厂,可能含有一些可以在 各个事务(transaction)之间共享的数据 (1) SessionFactory的缓存 可分为两类:内置缓存和外置缓存。 SessionFactory的内置缓存中存放了Hibernate配置信息和映射元数据信息、同时也缓存了Hibernate自动生成的SQL语句等; SessionFactory的外置缓存是一个可配置的缓存插件,在默认情况下,SessionFactory不会启用这个缓存插件。外置缓存 能存放大量数据库数据的拷贝,外置缓存的物理介质可以是内存或者硬盘。 (2) 只有一个数据存储源,只需创建一个SessionFactory SessionFactory就是个重量级对象,如果应用只有一个数据存储源,只需创建一个SessionFactory实例, 因为随意地创建SessionFactory实例会占用大量内存空间。 但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory。 (3) Configuration的其他用法 Configuration的configure ()方法还支持带参数的访问方式,你可以指定hbm.xml文件的位置,而不是使用默认的classpath 下面的hibernate.cfg.xml这种方式,例如: Configuration cfg = new Configuration().configure("myexample.xml"); ★★→→Configuration Configuration是hibernate的入口,在新建一个Configuration的实例的时候,hibernate会在classpath里面查找 hibernate.properties文件,如果该文件存在,则将该文件的内容加载到一个Properties的实例GLOBAL_PROPERTIES里面, 如果不存在,将打印信息:hibernate.properties not found 然后是将所有系统环境变量(System.getProperties())也添加到GLOBAL_PROPERTIES里面。如果hibernate.properties文件存在, 系统还会验证一下这个文件配置的有效性,对于一些已经不支持的配置参数,系统将打印警告信息。 (1) 作用---实现对Hibernate进行配置 ? Configuration接口的作用是对Hibernate进行配置,以及对它进行启动 在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。 ? 根据Configuration对象创建一个SessionFactory对象 为了能创建一个SessionFactory对象,你必须在Hibernate初始化时创建一个Configuration类的实例,并将已写好的映射文件交由它处理。 这样,Configuration对象就可以创建一个SessionFactory对象,当SessionFactory对象创建成功后,Configuration对象就没有用了,你可以简单地抛弃它。 (2) 它是启动hibernate的对象 虽然Configuration接口在整个Hibernate项目中只扮演着一个很小的角色,但它是启动hibernate时你所遇到的第一个对象。 (3) Configuration config = new Configuration(); config.addClass(Customer.class); sessionFactory = config.buildSessionFactory(); 或者: 使用方法链编程风格,可以改写为: sessionFactory = new Configuration().buildSessionFactory().addClass(Customer.class).buildSessionFactory(); 注意: 方法链编程风格能使应用程序代码更加简捷。在使用这种编程风格时,最好把每个调用方法放在不同的行,否则在跟踪程序时,无法跳入每个调用方法中。 ★★★→→Session(org.hibernate.Session) (1) 单线程的,短寿命的对象,代表了一次会话的过程。实际上是把一个JDBC Connection打包 了,它可以包含一些持久化对象的缓存 看作介于数据连接与事物管理一种中间接口. 在hibernate的设计者中.他们将session看作介于数据连接与事物管理的一种中间接口 或者想象成一个持久对象的缓冲区 hibernate能检测到这些持久对象的改变,并及时刷新数据库 (2) 每一个Session实例和一个数据库事务绑定 通常将每一个Session实例和一个数据处理库事务绑定 就是说,每执行一个数据库事务(操作),都应该先创建一个新的Session实例. 如果事务执行中出现异常,应该撤消事务. 不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例 占用的资源. (3) 如何获得Session对象 首先创建SessionFactory对象 应用服务器如果访问多个数据源时,则应该产生多个SessionFactory; 但是仅仅为了服务与某个请求时,不要创建一个新的SessionFactory,因为创建 SessionFactory需要消耗大量的资源. 然后根据SessionFactory再创建Session对象 例如::::: ---------------------------------------------------------------------------------- Session session=sessionFactory.openSession(); Transaction tx; try{ tx=session.beginTransaction();//开始一个事务 .......//执行事务 tx.commit(); }catch(Exception e){//如果出现异常就撤消事务 if(tx!=null) tx.rollback(); throw e; } finally//不管事务执行成功与否,最后都关闭Session并且放在finally中以提高安全性 session.close(); ----------------------------------------------------------------------------------- (4) Sessin 接口中的常用方法 基本的CURD操作(save()方法:把Java对象保存数据库中、update()方法:更新数据 库中的Java对象、delete()方法:把Java对象从数据库中删除、load()方法:从数据 库中加载Java对象 和find()方法:从数据库中查询Java对象);执行查询; ◆ save()方法:save() 和persist()方法产生SQL INSERT session = HibernateUtil.currentSession(); tx = session.beginTransaction(); Book oneBook = new Book(); oneBook.setBookName(new String("J2EE应用开发".getBytes("gb2312"), "ISO8859-1")); oneBook.setBookKind('1'); oneBook.setBookPrice(7.4f);
session.save(oneBook); tx.commit(); ◆? Sessin 接口中的常用方法---- updata()和merge()方法产生SQL UPDATE 该方法调用Session的load()方法,加载Customer对象,然后再修改Customer对象的属性。 session = HibernateUtil.currentSession(); tx = session.beginTransaction(); Book oneBook=(Book)session.load(Book.class,bookID); oneBook.setBookName(new String("Java应用开发".getBytes("gb2312"), "ISO8859-1")); oneBook.setBookKind('1'); oneBook.setBookPrice(10.4f); tx.commit(); ◆? Sessin 接口中的常用方法---- load和get方法 session的load和get方法根据给定的OID从数据库中加载一个对象,load方法在没有找 到对象时抛出notFoundException异常,get方法返回null; get和load和其他查询方法返回的对象位于session的缓存中,修改了对象的属性后, session清理缓存时,会根据持久化对象的属性来更新数据库。 用来对数据库中检索对象,load()和get()方法按照给定的OID加载一个持久化对象 public Iterator getAllCourses()throws HibernateException { String queryString = "select courses from Course as courses"; beginTransaction(); Query query = session.createQuery(queryString); Iterator it= query.iterate(); return it; } /** *按course的名字进行模糊查找,返回的是包含有Course持久对象的Iterator。 */ public Iterator getSomeCourse(String name)throws HibernateException { String queryString = "select c from Course as c where c.name like :name" ; beginTransaction(); Query query = session.createQuery(queryString); query.setString("name", "%"+name+"%"); Iterator it= query.iterate(); return it; } ◆? Sessin 接口中的常用方法---- delete()方法产生SQL DELETE 由于从数据库中删除对象对应的记录,如果出入的是持久化对象session就计划执行一个delete语句。 如果出入的参数是游离态对象,先使它成为持久化对象,然后计划执行一个delete语句。session只有在清理缓存的时候才会执行delete语句。 只有当调用session的close()方法时才会从session的缓存中删除对象。 session = HibernateUtil.currentSession();s tx = session.beginTransaction(); Book oneBook=(Book)session.load(Book.class,bookID); session.delete(oneBook); tx.commit(); ★★★★→→Transaction ★★★★★→→Query查询对象 Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。 Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。 Query query=session.createQuery(); List list = query.list();//把query查询对象放到Query的list里面,返回一个query对象 ★★★★★★Callback 方面的接口 当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback接口会通知Hibernate去接收一个通知消息---它允许 应用程序能对一些事件的发生作出相应的操作。例如Interceptor、Lifecycle和Validatable都是这一类接口。一般而言, Callback接口在用户程序中并不是必须的,但你要在你的项目中创建审计日志时,你可能会用到它。 ◎第一步.---->获取Sessionfactory对象 Sessionfactory sf=new Configuration().configure().buildSessionFactory(); ◎第二步.---->创建session对象 Session session=sf.openSession(); ◎第三步.---->获取对数据库操作前的事物对象 Transaction tx=session.beginTransaction(); ◎第四步.---->利用session的多个方法进行数据操作.例如:session.save(实体bean对象);session.update(实体bean对象)等; ◎第五步.---->tx.commit();保存持久化数据库操作; ◎ 数据其他操作.比如查询Query query=session.createQuery("from student where username='"+username"'");//student为一个实体bean对象.就是与hbm.xml对应的和数据库映射的一个 javabean. 其他接口:主键的生成 (IdentifierGenerator 接口) 本地SQL语言支持 (Dialect 抽象类) 缓冲机制 (Cache 和CacheProvider 接口) JDBC 连接管理 (ConnectionProvider接口) 事务管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口) ORM 策略 (ClassPersister 接口) 属性访问策略 (PropertyAccessor 接口) 代理对象的创建 (ProxyFactory接口)
发表评论
-
生成AES密钥,网摘自留
2015-01-26 15:46 1147import java.security.NoSu ... -
转 BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别
2014-11-14 20:37 709BeanUtils.copyProperties与Proper ... -
tar命令--摘
2014-04-18 11:21 579tar 解压缩命令 tar -c: ... -
spring为ApplicationContext提供有三种实现(举例) (转)
2013-08-01 08:42 742spring为ApplicationContext提供的3种实 ... -
转:F5 APACHE WEBLOGIC取用户真实IP的问题
2012-10-23 08:32 1645应用环境如下: F5负载均衡16台apache,然后转到后台 ... -
查看端口被哪程序占用
2011-04-22 16:39 948怎么查看端口占用情况? 开始--运行--cmd ... -
转:struts2上传文件
2010-07-12 14:34 1370上传文件是很多Web程序都具有的功能。Struts2本身没有提 ... -
转:Spring中任务调度cronExpression配置说明
2010-06-25 12:56 717cronExpression配置说明 字段 允许值 ... -
flv 播放器
2009-10-11 15:36 1511flv 播放器 <script type="t ... -
domino介绍
2009-08-10 11:53 2202.前言 DOMINO是一个以电子邮件为基础发展起来的标准群 ... -
javadoc,在 Java 的注释上做文章-(转)
2009-07-21 18:58 842前言 一. Java 文档 ... -
转---MySQL导出导入数据库命令
2009-07-21 13:48 12231.mysql导出整个数据库 mysqldump ... -
myeclipse7.5注册码
2009-07-20 16:43 5341前几天装了一个myeclipse7.5,每天弹要注册,于是在网 ... -
IBM WebShere Portal主题与皮肤开发
2009-07-06 15:50 4578所谓主题与皮肤,主要指门户系统的界面风格与显示方式。在企业门户 ... -
IE与FireFox的js和css
2009-07-01 10:56 997png透明 AlphaImageLoader filter:p ... -
wpf和wdf的区别
2009-06-25 17:46 2176wpf&&wdf是两 ... -
top、clientTop、scrollTop、offsetTop
2009-06-17 20:49 879<html> <head> < ... -
marquee
2009-06-15 19:09 1091功能: 使文字或者图片 ... -
marquee参数详解
2009-06-15 19:08 20502008-04-25 09:51(文字滚动)参数详解 文字 ... -
onmousemove、onmouseover、 onmouseup及onclick的区别
2009-06-15 15:28 2048时间上 onmousemove 事件触发后,再触发 onmou ...
相关推荐
在Java持久化框架Hibernate中,对象关系模型(Object-Relational Mapping,ORM)是将数据库中的数据映射到Java对象的技术。它使得开发者能够用面向对象的方式来操作数据库,简化了数据库编程的过程。以下是对...
Hibernate是Java开发中的重要工具,它简化了数据库操作,使开发者可以更加专注于业务逻辑,而不用过于关注底层SQL的编写。 首先,Hibernate的核心概念是对象关系映射(ORM),它通过在Java对象和数据库记录之间建立...
理解这些状态对于有效使用Hibernate至关重要,因为它们影响到对象的创建、修改、删除和查询。例如,如果你想要更新一个持久化对象,你需要确保它与一个活跃的Session关联。如果对象已经离开Session(变成离线对象)...
《精通Hibernate:Java对象持久化技术详解》一书聚焦于Java开发中的对象持久化技术,主要围绕Hibernate这一流行ORM框架进行深入探讨。Hibernate是Java世界里的重要工具,它简化了数据库操作,使得开发者可以更加专注...
在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解Hibernate的核心概念至关重要。 **一、...
Hibernate 操作持久化对象是Java开发中用于简化数据库交互的重要工具。它是一个开源的Java持久化框架,由Gavin King创建,并逐渐发展成为Java世界中主流的持久化解决方案。Hibernate的核心在于提供对象-关系映射(ORM...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,使得开发者能够更专注于业务逻辑而不是底层的数据存储。在这个主题“hibernate操纵实体对象”中,我们将探讨如何使用Hibernate来创建、...
在 Hibernate 中,对象的状态管理是至关重要的,因为它直接影响到对象如何与数据库交互。以下是 Hibernate 中对象的三种状态以及相关的保存方法: 1. **瞬时对象(Transient Objects)** - 当使用 `new` 关键字...
了解Hibernate对象的这三种状态,对于编写高效、稳定的持久化代码至关重要。正确管理对象状态可以帮助优化数据库交互,减少不必要的查询,提高系统的整体性能。在实际开发中,开发者需要根据业务需求和性能考虑,...
在Java的持久化框架Hibernate中,对象的状态管理是其核心特性之一...总之,理解Hibernate中对象的三种状态以及它们之间的转换对于开发人员来说至关重要。熟练掌握这些概念有助于编写出更加高效、可靠的Java持久化代码。
8. **Chapter 9**:这一章可能涵盖了一些高级话题,如延迟加载、代理对象、事件监听器和拦截器,这些都是优化性能和扩展Hibernate功能的重要手段。 9. **Chapter 10**:最后,作者可能讨论了如何将Hibernate与其他...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地在Java对象和数据库表之间进行数据操作。当我们需要执行一些特殊的、复杂的或者非标准的SQL...
这三种状态分别对应了对象与数据库的关联程度,理解它们对于高效地使用Hibernate进行数据操作至关重要。 ### 1. 持久态(Persistent) **持久态**是指对象已经被Hibernate管理,并且其状态与数据库中的记录同步。...
《Hibernate中文参考手册》是Java开发领域中关于Hibernate框架的重要学习资源,主要涵盖了Hibernate的中文API及详尽的参考信息。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它极大地简化了Java应用程序对...
总之,理解Hibernate中的对象生命周期对于有效地使用Hibernate进行数据操作至关重要。正确管理对象的状态可以避免潜在的数据不一致性和性能问题,确保应用程序的稳定性和效率。在实际开发中,开发者应当熟练掌握这些...
《Hibernate中文参考文档》是Java开发领域中关于Hibernate框架的重要学习资源,主要涵盖了Hibernate 3.6.10版本的相关内容。Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在Java应用程序...
在Java的持久化框架Hibernate中,开发者经常需要根据特定需求查询数据库并返回对象。`Hibernate3` 提供了丰富的API来实现这样的功能,包括使用原生SQL(Native SQL)进行查询,然后将查询结果映射到Java对象上。这篇...
### 知识点一:Hibernate框架概述 - **定义与作用**:Hibernate是...这本《精通 Hibernate_Java 对象持久化技术详解(第2版)》涵盖了从基础到高级的所有重要内容,非常适合希望深入学习Hibernate技术的Java开发者阅读。
面向对象思想是现代软件开发的重要基石,而Hibernate是这一思想在数据库操作中的体现。本书通过深入浅出的讲解,帮助读者不仅掌握Hibernate的使用,更进一步理解面向对象设计原则,从而在项目开发中更好地应用这些...
《Hibernate中文开发手册》是Java开发者的重要参考资料,它详尽地介绍了如何在Java应用程序中使用Hibernate框架进行对象关系映射(ORM)。Hibernate作为一款流行的开源ORM解决方案,极大地简化了数据库操作,使得...