Hibernate入门(二)——hibernateAPI详解
Hibernate API 详解
1.Configuration
功能:配置加载类,用于加载主配置,orm元数据加载
.创建:
Configuration conf = new Configuration();
读取指定配置文件(加载主配置文件,即我们经常创建的"hibernate.cfg.xml")
从下图中可以发现有很多关于读取方法的重载。。。
虽然有这么多重载,但是一般咱就用无参构造方法把,默认找到src下的hibernate.cfg.xml文件
conf.configure();
当然可以在创建Configuration对象的时候直接执行:
Configuration conf = new Configuration().configure();

它们的源码如下:





2.SessionFactory
功能:用于创建数据库核心对象session对象的工厂,简单的说,功能就只有一个-------------------创建session对象
注意:
1.sessionFactory负责保存和使用所有配置信息,消耗内存非常大
2.sessionFactory属于线程安全的对象设计(不同的用户对应不同的session)
结论:保证在web项目中,只创建一个sessionFactory
读取完主配置文件(hibernate.cfg.xml)后自然要拿到SessionFactory
SessionFactory sf = conf.buildSessionFactory();
3.session对象
创建:
①:一个新的session对象
Session session = sf.openSession();
②:获得一个与线程绑定的session对象
Session cSession = sf.getCurrentSession();
①插入
注意:
增删改查操作之前要开启事务,结束后要提交事务
最后要session释放资源(后面的操作我就不完整写了)
拿到对象,直接用save方法就行了
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
customer.setCust_id(2);
customer.setCust_name("测试");
session.save(customer);
tx.commit();
session.close();
②根据主键查询
Customer customer = session.get(Customer.class, 2);
③修改
拿到对象然后调用update方法()
Customer customer = session.get(Customer.class, 2);
customer.setCust_name("测试2");
session.update(customer);
发现一个"插入或者修改" 
④删除
首先拿到对象,然后调用delete()
Customer customer = session.get(Customer.class, 2);
session.delete(customer);
4.自定义Hibernate工具类
对于SessionFactory,提到最好只创建一个,其次就是封装重复代码,提高代码的复用性
package deep.utils; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; /**
* Hibernate工具类
* @author DeepSleeping
*
*/
public class HibernateUtils { private static SessionFactory sessionFactory; static{
Configuration conf = new Configuration().configure();
sessionFactory = conf.buildSessionFactory(); } public static Session getSession(){
return sessionFactory.openSession();
} public static Session getCurrentSession(){
return sessionFactory.getCurrentSession();
}
}
Hibernate入门(二)——hibernateAPI详解的更多相关文章
- Hibernate(二)之Hibernate-api详解
一.Hibernate体系结构 二.Hibernate-api详解 2.1.Configuration配置对象 Configuration是用来加载配置文件的 我们Hibernate中主要有两个配置文 ...
- ViewPager 详解(二)---详解四大函数
前言:上篇中我们讲解了如何快速实现了一个滑动页面,但问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合Android的API说明 ...
- [转]hibernate缓存机制所有详解
以下文章来自http://www.blogjava.net/tbwshc/articles/380013.html Hibernate 所有缓存机制详解 hibernate提供的一级缓存 hibern ...
- 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三种状态详解
本文来自 http://blog.sina.com.cn/u/2924525911 hibernate 三种状态详解 (2013-04-15 21:24:23) 转载▼ 分类: hibernate ...
- 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码
详解C#泛型(二) 一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...
- Hexo系列(二) 配置文件详解
Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...
- 经典Spring入门基础教程详解
经典Spring入门基础教程详解 https://pan.baidu.com/s/1c016cI#list/path=%2Fsharelink2319398594-201713320584085%2F ...
随机推荐
- apache与tomcat负载集群集成方法配置
apache与tomcat负载集群集成方法有3种jk.jk_proxy.http_proxy apache:httpd-2.2.17-win32-x86-no_ssl.msi tomcat:apach ...
- 使用Python多渠道打包apk
使用Python生成多渠道包 往apk包中追加到一个空文件到META-INF目录以标识渠道,Android中获取此文件即可获得App的下载渠道 首先在info文件夹新建一个qdb.txt的空文本文件 ...
- Javascript高级编程学习笔记(79)—— 表单(7)选择框脚本
选择框脚本 选择框由<option>和<select>元素创建,为了方便选择框的交互,除了提供表单字段的公有方法之外 HTMLSelectElement 类型还提供下列特有的属 ...
- display: table-cell的实用应用
概述 之前工作中碰到了一个垂直居中问题,最后通过查资料利用table-cell解决.于是打算总结一下有关table-cell的应用,记录下来,供以后开发时参考,相信对其他人也有用. 参考资料:我所知道 ...
- 意料之外,情理之中,Spring.NET 3.0 版本发布-
意料之外,情理之中,Spring.NET 3.0 版本发布- 备受社区和企业开发者广泛关注的Spring.NET在上周发布了3.0版本,并且目前已经保持着持续的更新,让我们一起来看一看他究竟发布了哪些 ...
- Mac eos 环境搭建
最近EOS官网出了文档,说可以跑通一个独立测试的节点了.这周尝试自行搭建了一下,由于自己不完全做mac下的开发,且这玩意是C写的,所以make起来遇到不少坑,记录下来.附完整踩坑.填坑记录. 1. 搭 ...
- Retrofit2 完全解析 探索与okhttp之间的关系
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51304204: 本文出自:[张鸿洋的博客] 之前写了个okhttputils的 ...
- File Explore 中data权限修改,实体机
如图: 1)root手机,360root 2)RootBrowser 改权限 3)ok
- .Net Self Hosting 的几种方式
写在前面: IIS是Windows平台非常关键的组件,它是微软自带的Web服务器,可以很方便的帮助我们运行起一个网站,WebApi等服务,提供给外部来访问.即使它被很多java或者ruby的同学各种鄙 ...
- WebBrowser使用例子
本文参考了:http://www.cnblogs.com/txw1958/archive/2012/09/24/CSharp-WebBrowser.html 在上文的基础上加入了 一些处理弹出对话框的 ...