映射器文件:

- 字段的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的更多相关文章

  1. Hibernate总结2 API和配置文件

    1,Configuration 配置 获取config配置文件的方法 Configuration cfg = new Configuration(); cfg.下面的方法 configure() co ...

  2. hibernate系列笔记(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  3. Hibernate之配置文件

    可持久化对象有以下三种状态: 临时状态(Transient):对象在保存进数据库之前为临时状态,这时数据库中没有该对象的信息,如果没有持久化,程序退出后临时状态的对象信息将会丢失.随时可能被垃圾回收器 ...

  4. hibernate框架(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  5. 二、hibernate的常用API

    hibernate的调用过程 public class demo01 { @Test public void test(){ // 1.加载hibernate核心配置文件 Configuration ...

  6. 2.一起来学hibernate之配置文件1与持久化对象

    学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...

  7. eclipse 新建 maven 项目 添加 spring hibernate 的配置文件 详情

    主要配置文件 pom.xml 项目的maven 配置文件 管理项目所需 jar 依赖支持 web.xml 项目的总 配置文件  :添加 spring和hibernate 支持 applicationC ...

  8. Hibernate常用配置文件详解

    本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...

  9. Hibernate的配置文件解析

    配置mybatis.xml或hibernate.cfg.xml报错: <property name="connection.url">jdbc:mysql://loca ...

  10. Hibernate之深入Hibernate的配置文件

    1.创建Configuration类的对象 Configuration类的对象代表了应用程序到SQL数据库的映射配置.Configuration类的实例对象,提供一个buildSessionFacto ...

随机推荐

  1. 记录工作中常用的 JS 数组相关操作

    工作中难免会遇到各种各样的数据结构,较为全面的了解数组操作,对于复杂数据结构的处理会非常有用且节省时间 所以想在这里总结一下工作中常用的数组操作,都是一些非常基础的知识,大家看个乐就好~ 目录 工作中 ...

  2. 初入JavaScript

    js是轻量级 弱类型 脚本语言 html是 超文本 标记语言 脚本语言和标记语言的主要区别 标记语言,可以通过浏览器直接执行 脚本语言,必须要通过编译,浏览器内核的编译,才能正常运行 简单理解,脚本语 ...

  3. 再谈中断机制(APIC)

    中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的.一个中断的起末会经历设备,中断控制器,CPU 三个阶段:设备产生中断信号,中断控制器翻译信号,CPU 来实际处理信号. ...

  4. 通过JS来触发<a>链接来实现图片下载

    function downloadImg(){ var url = '实际情况的图片URL'; // 获取图片地址 var a = document.createElement('a'); // 创建 ...

  5. FlashDuty Changelog 2023-12-18 | 值班管理、服务日历、自定义操作和邮件集成

    FlashDuty:一站式告警响应平台,前往此地址免费体验! 值班管理 UI 交互优化 [个人日程]从头像下拉菜单调整到值班列表页面,快速查看个人值班日程 [值班列表]支持原地预览最近一周值班情况,包 ...

  6. 点击li 该li变色

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. rabbitMq实现系统内的短信发送设计&动态获取BEAN

    rabbitMq实现系统内的短信发送设计&动态获取BEAN 1.短信非系统的重要节点操作,可以在任务完成之后,比如下单成功,发送下单成功的mq消息,短信服务接收到mq消息,动态的判断该短信的c ...

  8. Java代码规范equals, for continue

    代码规范equals, for continue 代码规范1 if(v.getPartner().contains("文案")){ } //修改成: if("文案&quo ...

  9. RSA密码系统的特定密钥泄露攻击与Coppersmith方法的应用

    PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全.密码学.联邦学习.同态加密等隐私计算领域的技术和内容. RSA密码系统作为当前最广泛使用的公钥加密算法之一,其安全性依赖 ...

  10. Vim的移动大法

    Vim的移动大法 移动光标的按键 "h" 向左移动 "j"向下移动 "k"向上移动 "l"向右移动 在单词之间移动 注: ...