Hibernate API详解

hibernate体系结构

PO:persistent Object 持久对象,javabean+hbm.xml,习惯称呼为PO类

Configuration

Configuration hibernate 提供用于存放所有配置信息对象

构造方法

new Configuration(),加载配置文件,hibernate.properties文件。但一般情况没有编写。

参考的配置文件:%h%project/etc/hibernate.properties

 api

config.configure(),加载src下hibernate.xml文件

config.configure(String path) path指定核心配置文件的位置

例如:conifgure("/cn/util/abc.cfg.xml")

加载映射文件

通常将映射文件配置hibernate.cfg.xml<mapping resource="cn/util/.../User.hbm.xml">

config.addClass(*.class) 将在class对象同级目录下,同名的hbm.xml文件

例如:config.addClass(Book.class),加载Book类,所在的包下面的Book.hbm.xml文件

config.addResource(String hbm)将指定映射文件xml加载内存,此时文件名称任意,不建议任意

SessionFactory

sessionFactory  用于提供session,相当于连接池,通过Configuration加载hibernate.cfg.xml创建对象

获得对象:config.builderSessionFactory()

SessionFactory是线程安全的。目的是每一个线程获得的session都是不同的,不存在线程并发问题

session获得:

创建一个新的session:factory.openSession();

将session绑定本地线程中,在一个线程共享session:factory.getCurrentSession();(之后使用)

工具类

package cn.hibernate.util;

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

public class H3Utils {
//方式1
//private static SessionFactory factory2 = new Configuration().configure().buildSessionFactory();

//方式2
//创建一个工厂
private static Configuration configuration;
private static SessionFactory factory;

static{
configuration = new Configuration().configure();
factory = configuration.buildSessionFactory();
}

public static Session openSession(){
return factory.openSession();
}
}

Session接口

session :服务器 与 数据库之间会话,相当于 Connection

session单线程,存在线程并发问题,线程不安全。

注意:session必须关闭,session.close();

Transaction 

开启事物:session.beginTransaction();

提交事物:session.commit();

回滚事物:session.rollback();

@Test
public void demo01(){
//01.获取session
Session session = H3Utils.openSession();
Transaction transaction = null;
try {
//#1开启事物
transaction = session.beginTransaction();

//操作:。。。。

//#2提交
transaction.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
if(transaction != null){
//#3回滚
transaction.rollback();
}
e.printStackTrace();
}
}

时间: 2024-10-09 11:08:42

Hibernate API详解的相关文章

(四)Hibernate API详解

一.Configuration类 用来加载默认文件路径下的配置文件(hibernate.properties). 调用configure()方法会加载默认文件路径下的xml格式的配置文件(hibernate.cfg.xml)推荐使用. 如果配置文件在不默认文件路径下或者配置文件名不符合默认规则 可以使用 new Configuration().configure(file) 加载指定文件 new Configuration().configure(path) 加载指定路径下的文件 如果使用pro

hibernate学习(2)——api详解对象

1   Configuration 配置对象 /详解Configuration对象 public class Configuration_test { @Test //Configuration 用户加载配置文件 public void fun1(){ //1.1 调用configure() 方法=> 加载src下名为hibernate.cfg.xml Configuration conf = new Configuration().configure(); //1.2 如果配置文件不符合默认加

Android基础入门教程——8.3.16 Canvas API详解(Part 1)

Android基础入门教程--8.3.16 Canvas API详解(Part 1) 标签(空格分隔): Android基础入门教程 本节引言: 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API,本节开始我们来讲解 Canvas(画板)的一些常用API,我们在Android基础入门教程--8.3.1 三个绘图工具类详解 中已经列出了我们可供调用的一些方法,我们分下类: drawXxx方法族:以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前

cublas 矩阵相乘API详解

#include "cuda_runtime.h"#include "device_launch_parameters.h" #include <stdio.h>#include <stdlib.h>#include "cublas_v2.h" void multiCPU(float *c, float *a, float *b, unsigned int aH, unsigned int aW, unsigned int

elasticsearch中api详解

一.cluster API详解 1.cluster health(获取集群的状态) 集群状态: green:绿色表示所有的碎片都被分配 yellow:黄色表示主碎片被分配,但副本不是     red:表示特定的碎片没有在集群中分配 请求参数 level: cluster,indices,shards wait_for_status: green,yellow,red [[email protected] ~]# curl -XGET 'http://10.2.11.225:9200/_clust

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情.简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口:困难是因为我们不了解算法细节,很难去根据业务的场景进行算法配置和调优. 本文将深入算法API去解释Mahout推荐算法底层的一些事. 1. Mahout推荐算法介绍 Mahoutt推荐算法,从数据处理能力上,可以划分为2类: 单机内存算法实现 基于Hadoop的分步式算法实现 1). 单机内存算法实现 单机内存算法实现:就是在单机下运行的算法

hibernate 1-1(详解)

域模型 关系数据模型: 按照外键映射: 按照主键映射: 基于外键映射的 1-1 对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素.为many-to-one元素增加unique="true" 属性来表示为1-1关联 另一端需要使用one-to-one元素,该元素使用 property-ref 属性指定使用被关联实体主键以外的字段作为关联字段 -不使用 property-ref 属性的 sql -使用 property-ref 属性的

【Unity编程】Unity中关于四元数的API详解

Unity中关于四元数的API详解 Quaternion类 Quaternion(四元数)用于计算Unity旋转.它们计算紧凑高效,不受万向节锁的困扰,并且可以很方便快速地进行球面插值. Unity内部使用四元数来表示所有的旋转. Quaternion是基于复数,并不容易直观地理解. 不过你几乎不需要访问或修改单个四元数参数(x,y,z,w); 大多数情况下,你只需要获取和使用现有的旋转(例如来自"Transform"),或者用四元数来构造新的旋转(例如,在两次旋转之间平滑插入). 大

Android基础入门教程——8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash

Android基础入门教程--8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash 标签(空格分隔): Android基础入门教程 本节引言: 在Canvas的API文档中,我们看到这样一个方法:drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) 这个Matrix可是有大文章的,前面我们在学Paint的API中的ColorFilter中曾讲过ColorMatrix 颜色矩阵,一个4 * 5 的矩阵