Hibernate学习-09:核心API:Configuration、SessionFactory、Session、Transaction、Query、Criteria
来源:互联网 发布:mac不能玩游戏吗 编辑:程序博客网 时间:2024/06/05 15:02
Configuration:负责管理 Hibernate 的配置信息
1.加载核心配置文件:
核心配置有两种:
* hibernate.properties:
* 加载:
Configuration configuration = new Configuration();
* hibernate.cfg.xml:
* 加载:
Configuration configuration = new Configuration().configure();
2.加载映射文件:
*第一种写法:
configuration.addResource("cn/itcast/hibernate3/demo1/Customer.hbm.xml");
*第二种写法:(要求:映射文件名称要规范,类与映射在同一个包下)
configuration.addClass(Customer.class);
SessionFactory:Session工厂
Configuration对象根据当前的配置信息生成 SessionFactory对象
SessionFactory 对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句
SessionFactory 对象是线程安全的
SessionFactory还负责维护Hibernate的二级缓存
SessionFactory对象根据数据库信息,维护连接池,创建Session(相当于Connection)对象.
抽取工具类:public class HibernateUtils {private static Configuration configuration;private static SessionFactory sessionFactory;static{configuration = new Configuration().configure();sessionFactory = configuration.buildSessionFactory();}public static Session openSession(){return sessionFactory.openSession();}public static void main(String[] args) {openSession();}}
在Hibernate中使用c3p0连接池:
* 引入c3p0的jar包
* 在核心配置中添加一段配置:
<!-- C3P0连接池设定--><!-- 使用c3po连接池 配置连接池提供的供应商--><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>
Session:
相当于JDBC的 Connection
Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心
Session是线程不安全的
所有持久化对象必须在 session 的管理下才可以进行持久化操作
Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久化操作的数据都缓存在 session 对象处
持久化类与 Session 关联起来后就具有了持久化的能力
Session维护了Hiberante一级缓存.
save()/persist() :添加.
update() :修改
saveOrUpdate() :增加和修改对象
delete() :删除对象
get()/load() :根据主键查询
createQuery() :创建一个Query接口,编写HQL语句
createSQLQuery() :创建一个SQLQuery接口,编写SQL语句数据库操作对象
createCriteria() :返回一个Criteria接口.条件查询
Transaction:
获得:
Transaction tx = session.beginTransaction();
常用方法:
commit() :提交相关联的session实例
rollback() :撤销事务操作
wasCommitted() :检查事务是否提交
*****如果没有开启事务,那么每个Session的操作,都相当于一个独立的事务
Query:
Query代表面向对象的一个Hibernate查询操作
session.createQuery 接受一个HQL语句
HQL是Hibernate Query Language缩写, 语法很像SQL语法,但是完全面向对象的
Criteria:
Criteria条件查询
- Hibernate学习-09:核心API:Configuration、SessionFactory、Session、Transaction、Query、Criteria
- Session,SessionFactory,Configuration,Transaction,Query和Criteria接口,Callback接口
- Hibernate的5个核心接口:Session、SessionFactory、Transaction、Query和Configuration
- day24 ORM Hibernate常用的接口和类(Configuration, SessionFactory , Session, Transaction ,Query) hql
- Configuration、SessionFactory、Session、Transaction
- Hibernate学习---Configuration,Session,SessionFactory
- hibernate案例入门一query transaction criteria sessionfactory和session区别 get和load的区别 opensession 和 getcurre
- Hibernate学习笔记 之 configuration、sessionFactory、session
- Hibernate的 SessionFactory,Configuration,Query ,Criteria接口简介,及Query的查询方法
- Hibernate之Configuration,SessionFactory,Session
- Hibernate之Configuration,SessionFactory,Session
- Hibernate之Configuration,SessionFactory,Session
- Hibernate之Configuration,SessionFactory,Session
- Hibernate之Configuration,SessionFactory,Session
- Hibernate学习笔记--Criteria Query
- sessionFactory &session&transaction interface
- Hibernate的Transaction SessionFactory
- Configuration、SessionFactory、Session
- 13种跨域解决方案
- CorelDRAW中如何合并与拆分对象讲解
- 利用jackson/fastjson封装JSON转换工具类
- 移植ubuntu core到Arm开发板
- 包装对象
- Hibernate学习-09:核心API:Configuration、SessionFactory、Session、Transaction、Query、Criteria
- 题目1171:C翻转
- MySQL utf8mb4 字符集,用于存储emoji表情
- 详解CorelDRAW中如何排列对象
- 分层抽样
- giit 通过rebase命令来revert patch
- XMind如何制作产品流程图?
- 针对SendBroadcastPermission: action:*, mPermissionType:* 问题分析及解决方案
- 【IMWeb训练营作业】实战vue练习之todoList