• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

Hibernate接口

一、Configuration

负责Hibernate配置和创建SessionFactory对象。在Hibernate启动过程中,Configuration类的实例首先定位到映射文件中,读取配置,然后创建SessionFactory对象。用于版本3和4。

@测试

公共void testConfig(){

//读取src下的hibernate.properties,不建议这样做。

配置cfg1=新配置();

//默认读取src下的hibernate,cfg.xml推荐

配置cfg2=新配置()。configure();

//如果hibernate的核心配置文件不叫hibernate.cfg.xml,比如hb.cfg.xml

配置cfg3=新配置()。configure(' HB . CFG . XML ');

//可编程,可以不用配置文件。

//CFG . add properties();

//CFG . add resource();

}

二、SessionFactory

SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并使用工厂模式创建会话对象。需要注意的是,SessionFactory并不是轻量级的。通常,一个项目只需要一个SessionFactory。当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

@测试

public void testSessionFactory(){

//默认读取src下的hibernate.cfg.xml,推荐

配置cfg=新配置()。configure();

//通过配置创建SessionFactory对象

//这是hibernate3.x中的写法

session factory sf1=CFG . buildsessionfactory();

//这是hibernate4.x中的写法

StandardServiceRegistry Sr=new StandardServiceRegistryBuilder()。apply settings(CFG . get properties())。build();

session factory sf2=CFG . buildsessionfactory(Sr);

//在hibernate5.x中是这样写的,所以不需要自己创建Configuration()对象。

StandardServiceRegistry service registry=new StandardServiceRegistryBuilder()

. configure . build();

session factory session factory=new metadata sources(service registry)。buildMetadata()。buildSessionFactory();

}

三、Session

会话是Hibernate开发者最重要的接口。在Hibernate中,实例化的Session是一个轻量级的类,创建或销毁它不会占用很多资源。这在实际项目中非常重要,因为在程序中,可能会不断地创建和销毁会话对象,如果会话开销过大,会给系统带来不利影响。但是会话对象是非线程安全的,所以在你的设计中,一个线程最好只创建一个会话对象。会话可以被视为数据库连接和事务管理之间的中间接口。我们可以将会话视为持久对象的缓冲区。Hibernate可以检测到这些持久对象的变化,及时刷新数据库。有时我们称Session为持久层管理器,因为Session负责添加、删除、更改和搜索持久对象,类似于JDBC连接和语句,比如将持久对象存储在数据库中,从数据库中获取。需要注意的是,Hibernate的Session不同于JSP应用中的HttpSession。在Hibernate中,当我们使用术语会话时,我们指的是Hibernate自己的会话。

@测试

公共void testSession(){

//在hibernate5.x中是这样写的,所以不需要自己创建Configuration()对象。

StandardServiceRegistry service registry=new StandardServiceRegistryBuilder()。配置()。build();

session factory session factory=new metadata sources(service registry)。buildMetadata()。buildSessionFactory();

//通过SessionFactory获取会话

session session=session factory . open session();

}

四、Transaction

负责事务相关的操作,代表Hibernate事务,本质上是数据库事务。一般出现在Hibernate的增删中,但是使用Hibernate一般使用Spring来管理事务。

@测试

public void testTransaction(){

//在hibernate5.x中是这样写的,所以不需要自己创建Configuration()对象。

StandardServiceRegistry service registry=new StandardServiceRegistryBuilder().配置。build();

会话工厂会话工厂=新的元数据源(服务注册中心).buildMetadata()。buildSessionFactory();

//通过会议工厂得到会议

会话会话=会话工厂。打开会话();

//第一种写法,创建对象并直接开启事务

事务tx1=会话。开始事务();

//第二种写法,只是创建对象而已,需要调用开始()开启事务

事务tx2=会话。get transaction();

tx2。begin();

}

五、Query

负责执行各种数值查询功能,它可以使用冬眠特有的语句语言和结构化查询语言语言两种方式。

Link to comment
Share on other sites