Hibernate的核心接口与类

[size=large]1.configuration类[/size]
主要作用是:解析hibernate配置文件和持久化映射文件中的信息.需要注意的是:该类仅仅只是在获取SessionFactory对象时需要使用,在获取SessionFactory后,由于配置信息已经由hibernate维护并绑定在放回的SessionFactory中,所以该configuration对象已经无使用价值.
下面让我们看看权威的挨批(API)文档上解释吧:
[quote][size=medium]An instance of Configuration allows the application to specify properties and mapping documents to be used when creating a SessionFactory. [b]Usually an application will create a single Configuration, build a single instance of SessionFactory and then instantiate Sessions in threads servicing client requests.[/b] The Configuration is meant only as an [b]initialization-time[/b] object. SessionFactorys are immutable and do not retain any association back to the Configuration.[/size][/quote]
重点理解粗字部分,通常情况下一个应用只会创建一个config对象,创建一个SessionFactory对象,然后使用session对象来处理客户请求.他只是个"初始化瞬间"变量.
一步情况下我们会创建一个简单工厂来生产SessionFactory对象,代码如下:

package util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class SessionFactoryUtil {
private static final SessionFactory sf;

static{
try{
sf = new Configuration().configure().buildSessionFactory();
}
catch(Throwable tw){throw new ExceptionInInitializerError(tw);}
}

private SessionFactoryUtil(){}

public SessionFactory getSessionFactory(){
return sf;
}
}

配置文件的格式一般如下:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

<!-- 数据库方言支持 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 添加C3P0数据库连接池 -->
<property name="c3p0.min_size">5</property>
<property name="c3p0.min_size">10</property>
<property name="c3p0.max_statements">50</property>
<property name="c3p0.timeout">3600</property>
<property name="c3p0.idle_test_period">120</property>
<property name="c3p0.acquire_increment">2</property>
<!-- 数据库连接配置 -->
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password"></property>
<!-- 数据库开发选项 -->
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="myeclipse.connection.profile">HibernateDemoMYSQLDriver</property>

</session-factory>

</hibernate-configuration>

[size=medium]2.SessionFactory接口[/size]
通过SessionFactory对象可以获取Session对象,正如上面api文档所讲的,设计者的意图是让他能在整个应用中共享使用,即如果只使用一个数据库,则只需要使用一个SessionFactory对象,如果你需要同时操作多个数据库则需要生产多个SessionFactory,还有,SessionFactory是作为一级缓存的形式存在,缓存了自动生成的SQL语句和一些其他的映射数据,同时还缓存了一些将来有可能重负使用的持久化对象.生成SessionFactory代码如下:

Configuration config = new Configuration();
config.configure();
SessionFactory sessionfactory = config.buildSessionFactory();

待续....
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值