配置类Configuration

主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时,配置文件取读底层的配置信息,基本包括数据库驱动,url、username、password、dialect、show_sql、format_sql、mapping映射文件等等

配置文件一般放在src目录下

demo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration 3.0.dtd"> <hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.url">jdbc:mysql://localhost:3306/helloworld</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="hibernate.format_sql">true</property> <mapping resource="com/hibernate/bean/Student.hbm.xml"></mapping> </session-factory>
</hibernate-configuration>

会话工厂类SessionFactory

会话工厂是生成Session的工厂,保存了当前数据库中所有的映射关系,可能只有一个可选的二级缓存,线程安全。它是一个重量级对象,消耗大量系统资源

生成SessionFactory

Configuration cfg=new Configuration().configure();
SessionFactory sessionFactory=cfg.bulidSessionFactory();

可以将生成的SessionFactory对象封装起来,后面使用的时候直接使用getter方法调用,减少系统资源的损耗。

Session会话类

这个Session不是JSP中的Session内置对象了,它是会话类,由SessionFactory创建。是数据库持久化操作的核心,负责hibernate的所有持久化操作,通过它执行数据库增删改查等操作。会话类不是线程安全,不要多会话共享一个Session。

创建session

Session session=sessionFactory.openSession();

获取会话中的Session

private final ThreadLocal<Session> threadLocal=new ThreadLocal<Session>();
Session session=(Session) threadLocal.get();

所以获取Session的方法

public  Session getSession() throws HibernateException{
Session session=(Session)threadLocal.get();
if(session==null||!session.isOpen()){
session=(sessionFactory!=null)?sessionFactory.openSession():null;
threadLocal.set(session);
}
return session;
}

hibernate中3个重要的类 Configuration SessionFactory Session的更多相关文章

  1. Hibernate中的条件查询完成类

    Hibernate中的条件查询有以下三个类完成: 1.Criteria:代表一次查询 2.Criterion:代表一个查询条件 3.Restrictions:产生查询条件的工具类

  2. Hibernate中的条件查询完毕类

    Hibernate中的条件查询有下面三个类完毕: 1.Criteria:代表一次查询 2.Criterion:代表一个查询条件 3.Restrictions:产生查询条件的工具类

  3. Hibernate学习---Configuration,Session,SessionFactory

    上一节我们讲到了Hibernate的测试,并且给出了测试代码,刚开始看见这个测试代码的同学估计是一头雾水把,所以这一节我们来讲一下测试代码. 本节主要内容: Configuration Session ...

  4. hibernate 中文文档

    转载:http://blog.csdn.net/kevon_sun/article/details/42850387 Hibernate Annotations 参考文档 3.2.0 CR1 目录 前 ...

  5. JavaWeb_(Hibernate框架)Hibernate中重要的api

    Hibernate中重要的api Configuration SessionFactory Session(重点) Transaction 在Dao层中UserDao.java使用Hibernate向 ...

  6. 在Hibernate中分别使用JDBC和JTA事务的方法

    在Hibernate中使用JDBC事务 Hibernate对JDBC进行了轻量级的封装,它本身在设计时并不具备事务处理功能.Hibernate将底层的JDBCTransaction或JTATransa ...

  7. Java Hibernate中的悲观锁和乐观锁的实现

    锁(locking) 业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算 处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中 (可能是几秒种, ...

  8. Hibernate 中的锁( locking )

    业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数 ...

  9. (七)Hibernate中使用JDBC

    在hibernate中获取connection数据库连接有两种方法:(操作数据库常用这种方法) 1. session.doReturningWork   返回一个对象,适用于查询方法 2. sessi ...

随机推荐

  1. 转:java项目经验面试总结

    转载: 在前期已经讲过怎样分析自己,对自己进行一个准确的定位,选择一个合适的求职方向!并结合自己的实际个人情况来写一份针对性很强的个人简历!个人简历就是个人的广告!好的简历可以更受到用人需求单位青睐! ...

  2. mysql中index与Multiple-Column Indexes区别与联系

    索引对提升SELECT/UPDATE语句查询速度有着立竿见影的效果,有索引和无索引,查询速度往往差几个数量级. 本次讨论一下index(每列作为一个索引,单列索引)和Multiple-Column I ...

  3. java ShutdownHook介绍与使用

    Java程序经常也会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码.JAVA中的ShutdownHook提供了比较好的方案. JDK提供了Java ...

  4. Window系统下用Ant实现Java项目的自动构建和部署

    https://blog.csdn.net/xinxin19881112/article/details/7297021 Step 1: 从官网下载Ant包,官网地址http://ant.apache ...

  5. [原][OSG][osgBullet][osgworks][bullet]编译osgBullet尝试物理引擎

    相关网址: 类似文章:http://blog.csdn.net/lh1162810317/article/details/17475297 osgBullet官网:http://osgbullet.v ...

  6. 什么是分布式锁?Redis实现分布式锁详解

    在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务.分布式锁等.那具体什么是分布式锁,分布式锁应用在哪些业务场景.如何来实现分布式锁呢?今天继续由陈睿|mikeche ...

  7. Android中的JSON详细总结

    1.JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式, ...

  8. Redis之字符串类型命令

    String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 ...

  9. Spring Cloud 学习网址

    1. https://blog.csdn.net/forezp/article/details/70148833  史上最简单的 SpringCloud 教程 (非常适合新手快速上手教程)2.http ...

  10. LeetCode--175--组合两个表

    问题描述: 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | ...