2007-12-10
java 对象持久化技术详解
3、Session持久化管理器,与HttpSession无任何关系。
* 不是线程安全的,避免多个线程共享同一个session实例。
* 轻量级的,为每个客户请求分配单独的Session或为每个工作单元分配单独的Session实例。Session有一级缓存,每个Session有自己的缓存。
4、Transaction接口
事务接口,
5、Query和Criteria接口
查询接口,面向对象。
第二章 入门
在java应用中使用Hibernate如下:
1、 创建Hibernate配置文件。
2、 创建持久化类。
3、 创建对象-关系映射文件。
4、 通过HibernateAPI编写访问数据库代码。
1、 XML格式
2、 符合JavaBean规范
3、 如果customerA.getId().equals(customerB.getId())的结果是TRUE,就表示customerA和customerB对象批的是同一个客户,在表中是同一个记录。要有一个不带参数的构造方法。
MYSQL数据库中有text类型,长文本数据,如果小于255可用VARCHAR或CHAR类型来表示,如果大于255可用TEXT类型。
有BLOB:二进制长数据。
有DATE:日期“YYYY-MM-DD”。
有TIMESTAMP:日期和时间,“YYYYMMDDHHMMSS”
4、 映射
5、 <class name=”完整类名” table=”表”>,包含一个<id>及多个<property>子元素。<id>设定类OID和表的PK映射。<id>的<generator》子元素指定对象标识生成器,为OID生成惟一标识符。<property>设定类的属性和表的字段映射,内有name,(类属性名字),type(Hibernate映射类型),column(当没有设置时,Hibernate将直接以类的属性名作为字段名),not-null
Hibernate映射类型有string, int, character, boolean, text, binary, date, timestamp, long.
对于实际JAVA应用,当持久化一个JAVA对象时,不应该依赖HIBERNATE或数据库来负责数据验证。在四层应用结构中,应该由表述层或者业务逻辑层负责数据验证。
2.5
通过HibernateAPI操纵数据库
SessionFactory的openSession()获得Session可如下操纵数据库:
Save(), update(), delete(),load(), find()不论事务执行成功与否,最后都应该调用Session的close()方法。
作为软件使用者,如果仅仅想快速掌握一个新的JAVA软件的使用方法,而不打算深入了解软件内在原理和结构无非就是了解它的API及配置文件的使用方法。当然,如果想让软件的运用达到得心应手的地步,还应该了解软件本身的组成原理和结构。