首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate框架学习笔记(一)

含义:是一个对象关系映射(Object Relational Mapping,简称ORM)的持久化框架,通过操作对象来操作数据库。

准备工作:

1>新建表

2>新建Model

3>导包

注意:记得buildpath

4>编写Hibernate配置文件(直接参考project/etc)

②映射配置文件

5>使用

DQL:步骤

创建配置对象Configuraction configuration=new Configuration();

加载配置文件configuration.configure();

创建SessionFactory [DataSource] SessionFactory sessionFactory=configuration.buildSessionFactory();

创建Session [Connection]sessionFactory.openSession();

操作

关闭session session.close();

关闭sessionFactory sessionFactory.close();

DML:步骤

创建配置对象Configuraction configuration=new Configuration();

加载配置文件configuration.configure();

创建SessionFactory [DataSource]SessionFactory sessionFactory=configuration.buildSessionFactory();

创建Session [Connection]sessionFactory.openSession();

操作

|--开启事物 session.beginTransaction();

|--提交\回滚事物 session.getTranSaction().commit()session.getTranSaction().rollback()

关闭session session.close();

关闭sessionFactory sessionFactory.close();

6>hibernate常用API

①Configuration

Hibernate4.X之前

Hibernate4.X之后

Hibernate4.X:建议将配置信息放到hibernate.properties文件中

②SessionFactory

含义

|--数据库的连接信息是配置SessionFactory(类似DataSource)

|--负责创建Session对象

|--线程安全的,Session是线程不安全的,创建要很大的开销,一般一个应用一个即可。

常用方法

|--openSession

|--创建全新的session

|--全新的一级缓存

|--全新的事物

|--getCurrentSession

|--若当前线程的ThreadLocale中存在,则直接使用;若没有则使用openSession创建一个,并且放入ThreadLocale中

thread

|--getCurrentSession得到的session

|--无论是DML还是DQL ,都必须开启事务

|--当事务提交或回滚,session自动被关闭,因此不需要调用再次session.close(),否则报错。

③Session

含义:线程不安全,主要用来操作数据的,内部提供一级缓存功能,一级缓存随之session关闭而销毁

获取方式

|---SessionFactory的openSession

|--SessionFactory的getCurrentSession

常用方法

|--操作数据

|--get

|--createQuery

|--save

|--delete

|--update

|--操作事物

|--beginTransaction//设置事物开启状态

|--getTransaction//获取事物对象

|--缓存相关

|--contains(Object object) //判断对象是否在缓存中

|--evict(Object object)//删除指定的缓存

|--clear()//清空全部一级缓存

④Transaction

含义:操作事物对象

相关方法

|--begin开始事物

|--commit提交

|--rollback回滚

⑤openSession

⑥getCurrentSession

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180327G1QVPQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券