1.配置对象

配置对象是你在任何 Hibernate 应用程序中创造的第一个 Hibernate 对象,并且经常只在应用程序初始化期间创造。它代表了 Hibernate 所需一个配置或属性文件。配置对象提供了两种基础组件。

  • 数据库连接:由 Hibernate 支持的一个或多个配置文件处理。这些文件是 hibernate.properties 和 hibernate.cfg.xml。
  • 类映射设置:这个组件创造了 Java 类和数据库表格之间的联系。

SessionFactory 对象

配置对象被用于创造一个 SessionFactory 对象,使用提供的配置文件为应用程序依次配置 Hibernate,并允许实例化一个会话对象。SessionFactory 是一个线程安全对象并由应用程序所有的线程所使用。

SessionFactory 是一个重量级对象所以通常它都是在应用程序启动时创造然后留存为以后使用。每个数据库需要一个 SessionFactory 对象使用一个单独的配置文件。所以如果你使用多种数据库那么你要创造多种 SessionFactory 对象。

Session 对象

一个会话被用于与数据库的物理连接。Session 对象是轻量级的,并被设计为每次实例化都需要与数据库的交互。持久对象通过 Session 对象保存和检索。

Session 对象不应该长时间保持开启状态因为它们通常情况下并非线程安全,并且它们应该按照所需创造和销毁。

Transaction 对象

一个事务代表了与数据库工作的一个单元并且大部分 RDBMS 支持事务功能。在 Hibernate 中事务由底层事务管理器和事务(来自 JDBC 或者 JTA)处理。

这是一个选择性对象,Hibernate 应用程序可能不选择使用这个接口,而是在自己应用程序代码中管理事务。

Query 对象

Query 对象使用 SQL 或者 Hibernate 查询语言(HQL)字符串在数据库中来检索数据并创造对象。一个查询的实例被用于连结查询参数,限制由查询返回的结果数量,并最终执行查询。

Criteria 对象

Criteria 对象被用于创造和执行面向规则查询的对象来检索对象。

2.配置文件

  Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表。Hibernate 也需要一套相关数据库和其它相关参数的配置设置。所有这些信息通常是作为一个标准的 Java 属性文件提供的,名叫 hibernate.properties。又或者是作为 XML 文件提供的,名叫 hibernate.cfg.xml。

hibernate.cfg.xml:

<?xml version="1.0" encoding="utf-8"?>
<!--约束定义-->
<!DOCTYPE hibernate-configuration SYSTEM
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory> <!-- 配置Hibernate的方言 -->
   <property name="hibernate.dialect">
   org.hibernate.dialect.MySQLDialect
   </property>
  

<!-- 连接数据库的基本参数 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>

  

<!-- 可选配置================ -->
<!-- 打印SQL -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化SQL -->
<property name="hibernate.format_sql">true</property>
<!-- 自动创建表 -->
<property name="hibernate.hbm2ddl.auto">update</property>

<!-- 配置C3P0连接池 -->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!--在连接池中可用的数据库连接的最少数目 -->
<property name="c3p0.min_size">5</property>
<!--在连接池中所有数据库连接的最大数目 -->
<property name="c3p0.max_size">20</property>
<!--设定数据库连接的过期时间,以秒为单位,
如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 -->
<property name="c3p0.timeout">120</property>
<!--每3000秒检查所有连接池中的空闲连接 以秒为单位-->
<property name="c3p0.idle_test_period">3000</property>


<!-- List of XML mapping files -->
<mapping resource="Employee.hbm.xml"/> </session-factory>
</hibernate-configuration>

最新文章

  1. Sql Server系列:字符串函数
  2. Newtonsoft.Json
  3. 建立controller
  4. XPath注入笔记
  5. 设定所有tableView中cell的分隔线颜色
  6. jQuery生成全页面的悬浮覆盖层效果(overlay)
  7. 编译linux内核以及depmod的使用
  8. (转载)HTML与XHTML有什么区别
  9. 多目标遗传算法 ------ NSGA-II (部分源码解析)README 算法的部分英文解释
  10. C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码
  11. 微博第三方登录使用social_django实现显示登陆的用户名
  12. C语言学习及应用笔记之一:C运算符优先级及使用问题
  13. “AS3.0高级动画编程”学习:第三章等角投影(上)
  14. Android应用系列:完美运行GIF格式的ImageView(附源码)
  15. 8.并发容器ConcurrentHashMap#put方法解析
  16. mysql配置和管理(转载)
  17. 从 s = &quot;我爱北京天安门&quot; 中悟道了-----------迭代器操作print(c.__next__())的最!大!好!处!-----------------------------------------------------可以一个一个输出
  18. golang安装开发环境配置
  19. [zabbix] zabbix从内部检测web页面
  20. python 判断文件的创建时间和当前时间的比较

热门文章

  1. yii 框架 – 安全站点和非安全站点的 URL 管理
  2. Python中安装框架如何换源以及升级
  3. java猜拳
  4. VOC2012数据集提取自己需要的类的图片和对应的xml标签
  5. java Vector的特点与使用
  6. uni app中使用自定义图标库
  7. redis单线程为什么快?
  8. Metasploit学习笔记——强大的Meterpreter
  9. lnmp1.5下安装mongodb
  10. 网站Webshell大马密码极速暴力爆破工具-cheetah