Hibernate框架学习(二)——api详解
一、Configuration对象
功能:配置加载类,用于加载主配置,orm元数据加载。
//1、创建,调用空参构造(还没有读配置文件)
Configuration conf=new Configuration();
//2、读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件
conf.configure(); //3、读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载
//conf.addResource(resourceName);
//conf.addClass(persistentClass); //4、根据配置信息创建SessionFactory对象
SessionFactory sf = conf.buildSessionFactory();
二、SessionFactory对象
功能:用于创建操作数据库核心对象Session对象的工厂,简单说功能就一个——>创建session对象。
注意:1.SessionFactory负责保存和使用所有配置信息,消耗内存资源非常大
2.SessionFactory属于线程安全的对象设计
结论:保证在web项目中只创建一个SessionFactory
//5、获得session
//打开一个新的session对象
sf.openSession();
//获得一个与线程绑定的session对象
sf.getCurrentSession();
在实际项目使用中,常常会抽取出一个HibernateUtils的工具类,用来提供Session对象。
Hibernate工具类:
package cn.itheima.utils; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class HibernateUtils {
//保证web项目中只创建一个SessionFactory
private static SessionFactory sf; static{
Configuration conf=new Configuration().configure();
sf = conf.buildSessionFactory();
} //获得session=>获得全新的session
public static Session openSession(){
Session session = sf.openSession();
return session;
} //获得session=>获得与线程绑定的session
public static Session getCurrentSession(){
Session session = sf.getCurrentSession();
return session;
} //测试一下工具类
public static void main(String[] args){
System.out.print(HibernateUtils.openSession());
}
}
三、Session对象
功能:表达Hibernate框架与数据库之间的连接(会话), 类似于JDBC年代的Connection对象,还可以完成对数据库中数据的增删改查操作。
session是Hibernate操作数据库的核心对象
1、获得事务

2、session的新增

3、session的查询(通过id,第二个参数要带数据类型,如下Long类型,在1后面添加l)

4、session的修改(通过id)

5、session的删除(通过id)

四、Transaction对象
功能:封装了事务的操作
1、打开事务
方式一:

方式二:

2、提交事务

3、回滚事务

Hibernate框架学习(二)——api详解的更多相关文章
- Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制
目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 ...
- Struts2框架学习(三)——配置详解
一.struts.xml配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...
- Vue 学习 二 路由详解
1 roter-link 和roter-view组件 2路由配置 a.动态路由 b.嵌套路由 c.别名路由 d.命名路由 3 Js操作路由 4 重定向和别名 1为路由默认绑定 2 使用组件 根据 路由 ...
- Android Developer -- Bluetooth篇 开发实例之四 API详解
http://www.open-open.com/lib/view/open1390879771695.html 这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每 ...
- hibernate学习(2)——api详解对象
1 Configuration 配置对象 /详解Configuration对象 public class Configuration_test { @Test //Configuration 用户 ...
- iOS 开发之照片框架详解之二 —— PhotoKit 详解(下)
本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文<iOS ...
- iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)
转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-two.html 一. 概况 本文接着 iOS 开 ...
- Hibernate入门(二)——hibernateAPI详解
Hibernate API 详解 1.Configuration 功能:配置加载类,用于加载主配置,orm元数据加载 .创建: Configuration conf = new Configurati ...
- Java8学习笔记(五)--Stream API详解[转]
为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念.它也不同于 StAX 对 ...
随机推荐
- SQL学习——基础语句(4)
前面感觉真的好乱,想哪,写哪.这里慢慢整理…… SQL Having 语句 还是前面的那两个表: grade表: student表: 我们需要查找这里的s_id下的gradeValue的和,这就要分组 ...
- reflect 反射结合集合泛型的总结
集合泛型: 可以放任何对象的 ArrayList ArrayList list = new ArrayList(); 没有限定泛型类型. list.add("lilin");l ...
- 字符串时间转Date格式
/** * 字符串时间格式转 Date 格式 * @param strDate * @return */ public static Date getDateTimeByStringTime(Stri ...
- HDU 4725 The Shortest Path in Nya Graph [构造 + 最短路]
HDU - 4725 The Shortest Path in Nya Graph http://acm.hdu.edu.cn/showproblem.php?pid=4725 This is a v ...
- 加减法计算器-java
由于经常进行较大数据的加减法计算,好多计算器都是转换成科学技术法的,所以自己用java写了一个 功能如下: 1,可以输入多个带千位分隔符的数字,进行加减法计算 2,结果展示带千位分隔符 3,结果展示不 ...
- tomcat闪退无法启动 the catalina_home environment variable is not defined correctly this environment variable is needed to run this program
未成功配置CATALINA_HOME 1.计算机>属性>环境变量, 新建环境变量.变量名为CATALINA_HOME ,变量值tomcat的解压目录,注意后面不用多加“\”或者“;” 2. ...
- SpringMVC请求@RequestParam中文乱码解决
private String encodeStr(String str) { try { return new String(str.getBytes("ISO-8859-1"), ...
- java string遇到的一个奇葩bug
String abc = "1"; HashMap<String, String> hMap = new HashMap<String, String>() ...
- 《iOS Human Interface Guidelines》——System Button
系统button 系统button运行一个app特定的动作. API NOTE 在iOS 7中,UIButtonTypeRoundedRect被又一次定义成UIButtonTypeSystem.查看U ...
- 【转载】tslib移植_freescale imx6
本文来自网络:http://blog.csdn.net/xishuang_gongzi/article/details/49422879 环境:host:Ubuntu12.04target:frees ...