【Hibernate】03 配置文件 & API
映射器文件:
- 字段的Column属性可以不写缺省,这将表示和实体类的属性标识一样

- type 属性用于声明表字段在Java中的类型,这个属性可不写缺省,自动匹配

Hibernate 4个核心API
Configuration 配置
// 创建配置对象
Configuration configuration = new Configuration(); // 调用配置方法,这个方法会直接去找hibernate.cfg.xml 不需要按名字注入配置
configuration.configure();
我们查看源码发现这个方法他就是这么写的

所以为什么才要求我们Hibernate的核心配置文件必须是这个名称
或者使用这个重载方法,注入文件路径
/config/hibernate.cfg.xml

SesionFactory 会话工厂
使用配置对象创建会话工厂
读取配置JDBC参数,和映射文件信息,在数据库中创建数据表或者更新

创建SessionFactory的过程中是特别消耗资源的
最佳使用:
工厂实例有且仅有唯一一个实例,并一直存留围绕整个项目的运行器
不应该多次创建,所以即单例模式,写在静态代码块即可
编写Hibernate工具类
package cn.dai.util; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; /**
* @author ArkD42
* @file Hibernate
* @create 2020 - 05 - 10 - 11:18
*/
public class HibernateUtil { private HibernateUtil(){} private static SessionFactory sessionFactory; static {
Configuration configuration = new Configuration();
configuration.configure();
sessionFactory = configuration.buildSessionFactory();
} public static Session getSession(){
return sessionFactory.openSession();
}
}
Session SQL会话
实现数据库的CRUD操作
- 添加 SAVE
- 修改 UPDATE
- 删除 DELETE
查询是一个特殊的场景:
- 根据ID查询,GET
Session是一个单线程的对象,不能被公用!!!
最佳使用是在方法中,使用完毕立刻释放
下次使用再到工厂获取
Transaction
- 通过会话对象获取实例,开启事务
Transaction transaction = session.beginTransaction();
不要等到执行SQL之后再开启事务,建议获取到会话实例之后立刻开启事务
- 提交事务
// 提交事物
transaction.commit();
- 如果失败,应该进行回滚处理
// 回滚事物
transaction.rollback();
使用工具类再简化的测试
@Test
public void letsGetThisWork2(){
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
session.save(new User(null,"阿伟","332244"));
transaction.commit();
session.close();
}
【Hibernate】03 配置文件 & API的更多相关文章
- Hibernate总结2 API和配置文件
1,Configuration 配置 获取config配置文件的方法 Configuration cfg = new Configuration(); cfg.下面的方法 configure() co ...
- hibernate系列笔记(2)---Hibernate的核心API
Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...
- Hibernate之配置文件
可持久化对象有以下三种状态: 临时状态(Transient):对象在保存进数据库之前为临时状态,这时数据库中没有该对象的信息,如果没有持久化,程序退出后临时状态的对象信息将会丢失.随时可能被垃圾回收器 ...
- hibernate框架(2)---Hibernate的核心API
Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...
- 二、hibernate的常用API
hibernate的调用过程 public class demo01 { @Test public void test(){ // 1.加载hibernate核心配置文件 Configuration ...
- 2.一起来学hibernate之配置文件1与持久化对象
学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...
- eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情
主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件 :添加 spring和hibernate 支持 applicationC ...
- Hibernate常用配置文件详解
本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...
- Hibernate的配置文件解析
配置mybatis.xml或hibernate.cfg.xml报错: <property name="connection.url">jdbc:mysql://loca ...
- Hibernate之深入Hibernate的配置文件
1.创建Configuration类的对象 Configuration类的对象代表了应用程序到SQL数据库的映射配置.Configuration类的实例对象,提供一个buildSessionFacto ...
随机推荐
- Qt--点击按钮弹出一个对话框
本文简要说明,如何实现点击按钮弹出一个文本框. 1)首先创建工程,我们就创建一个QMainWindow,不选择UI,就好了. 2)然后再单独创建一个C++类文件,最后得到的工程代码如下: 由于在创建m ...
- Linux进程间通信-管道(pipe)
本系列文章主要是学习记录Linux下进程间通信的方式. 常用的进程间通信方式:管道.FIFO.消息队列.信号量以及共享存储. 参考文档:<UNIX环境高级编程(第三版)> 参考视频:Lin ...
- 纯css+html做emoji动态表情
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- LeetCode 715. Range Module Range 模块 (Java)
题目: A Range Module is a module that tracks ranges of numbers. Your task is to design and implement t ...
- VictoriaLogs 要凭什么革了各家日志存储的命
如果大家对时序指标的存储方案有些了解,那大概率会听过 VictoriaMetrics,VictoriaMetrics 号称 Prometheus 的升级版,在性能和成本方面也确实做得很好,如果是夜莺新 ...
- spring mvc GET请求方式及传参
spring mvc GET请求方式及传参 @Api(tags = "管理接口") @Slf4j @RestController @RequestMapping("/my ...
- Eclipse build js卡死 Eclipse 编译太卡,耗时太长解决
Eclipse build js卡死 Eclipse 编译太卡,耗时太长解决 问题描述:编译停止在js编译中,原来是js的问题 1.首选项-javaScript-Validator-Errors/Wa ...
- R 语言入门学习笔记:软件安装踩坑记录——删除所有包以及彻底解决库包被安装到 C 盘用户目录下的问题,以及一些其他需要注意的点
目录 R 语言入门学习笔记:软件安装踩坑记录--删除所有包以及彻底解决库包被安装到 C 盘用户目录下的问题,以及一些其他需要注意的点 软件版本及环境 遇到的问题描述 问题的分析和探究 最终的解决方案 ...
- 云服务器通过内网穿透的方式ssh访问内网服务器
云服务器通过内网穿透的方式ssh访问内网服务器 背景 买了一台云服务器,了解到可以通过外部服务器连接到公司内部服务器. 为了加快办公的效率,配置了一下. 以Ubuntu为例. 原文(有删改):http ...
- 基于Mock.js,使用C#生成模拟数据
获取某前端框架, 使用 Mock.js 生成模拟数据, 想要对api进行改造,并且保留原始数据,需要使用C# 重写后端api 的数据 模拟的内容: Random.guid() uuid: '@uuid ...