当前位置:首页 > 有关hibernate相关知识点
北大青鸟中关村
(三)Hibernate中的对象
SessionFactory (org.hibernate.SessionFactory)
针对单个数据库映射关系经过编译后的内存镜像,是线程安全的(不可变)。 它是生成的工厂,本身要用到。
Session (org.hibernate.Session)
表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期很短,隐藏了连接,也是的工厂。
Transaction (org.hibernate.Transaction)
应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的、以及事务隔离开。
ConnectionProvider (org.hibernate.connection.ConnectionProvider) 生成连接的工厂(有连接池的作用)。它通过抽象将应用从底层的或隔离开。仅供开发者扩展/实现用,并不暴露给应用程序使用。
TransactionFactory (org.hibernate.TransactionFactory)
生成对象实例的工厂。仅供开发者扩展/实现用,并不暴露给应用程序使用。
示例如下:
数据库表:Student.sql
北大青鸟中关村
CREATE TABLE \(
\ \ \ \ \ \ \ \)
配置文件:hibernate.cfg.xml
\
\>
name=\jdbc:oracle:thin:@localhost:1521:orcl
name=\oracle.jdbc.driver.OracleDriver
name=\org.hibernate.dialect.Oracle10gDialect name=\thread
北大青鸟中关村
1:与被描述的类同名 ,如:Student.hbm.xml 2:存放位置与所描述类存放在同一文件夹下 3:主要有如下四部分配置 : (1)类和表的映射 (2)主键的映射
(3)类的属性和DB中字段的映射 (4)关系的映射
4:配置的时候可以到hibernate发行包里面找个例子,比如可以用“\\project\\hibernate-core\\src\\test\\java\\org\\hibernate\\test\\cid”下面的Customer.hbm.xml作例子
映射文件:Student.hbm.xml
\
\>
assigned:主键的状态 assigned表示程序生成 sequence:Oracle中的序列 identity:Sql中的自动编号 increment:先查询最大的编号再增1 uuid:生成32位长的字符串 native:根据数据库自动生成 --> 北大青鸟中关村
客户端文件:
java代码:StudentService.java
package hibDemo1.dao;
import hibDemo1.entity.Student;
import java.util.List;
import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class StudentService {
private static Configuration conf; private static SessionFactory sf; private static Transaction tx;
static { try {
conf = new Configuration().configure(); sf = conf.buildSessionFactory();
共分享92篇相关文档