Hibernate的 SessionFactory,Configuration,Query ,Criteria接口简介,及Query的查询方法

本文主要是介绍Hibernate的 SessionFactory,Configuration,Query ,Criteria接口简介,及Query的查询方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


关于SessionFactory接口

我们从SessionFactory工厂类中获取session实例,

事实上当我们的项目中只对应一个数据库时就不需要重复的创建session实例。
因为一个数据库对应一个session实例,SessionFactory在Hibernate中起到了一个缓冲区的作用,缓冲了一些
Hibernate自动生成的sql语句,一些映射数据和可能重复利用的数据。


所以我们可以将SessionFactory的实例放进static静态代码块中。 

  private static SessionFactory sf;static{Configuration config=new Configuration();config.configure();sf=config.buildSessionFactory();}


Configuration   接口   
 
加载默认的src/hibernate.cfg.xml配置文件(所有映射文件)之后创建工厂类SessionFactory


Transaction   事务接口
通过session对象来开启事务。数据库的操作成功离不开事务的开启~

当我们在hibernate.cfg.xml配置中加入了

 

 <property name="hibernate.show_sql">true</property> <!-- 控制台打印输出数据库sql语句 -->

如果控制台成功打印了数据库语句,而数据库没有成功插入的话就是没有执行事务。


Query接口

Query分为
主键查询
HQL查询
SQL查询



主键查询:
session.get(Employee.class, 1);    主键查询
session.load(Employee.class, 1);   主键查询 (支持懒加载)


HQL查询:
HQL查询与SQL查询区别:
SQL: (结构化查询语句)查询的是表以及字段;  不区分大小写。
HQL: hibernate  query  language 即hibernate提供的面向对象的查询语言
查询的是对象以及对象的属性。
区分大小写。

//HQL查询(不支持*)
Query q=session.createQuery("from employee");
return q.list();



本地SQL查询:

原生态的sql语句查询
(缺点: 不能跨数据库平台!)

SQLQuery sqlQuery= session.createSQLQuery("select * from employee").addEntity(Employee.class); 
List list=sqlQuery.list();
System.out.println(list);


Criteria接口
Criteria查询:
完全面向对象的查询。

Criteria criteria=session.createCriteria(Employee.class);//往里面添加条件criteria.add(Restrictions.eq("empId", 1));//查询全部List<Employee> list=criteria.list();System.out.println(list);

其他对数据库的操作:

 //将employ保存进数据库(具体操作,在上一篇关于hibernate的小例子中有讲解)

session.save(employ);    

  //对数据库进行更新操作(注意:这个必须设置主键的值,不然操作失败,报错)
 session.update(employ);   

 //保存或更新操作(设置了主键就是更新,没有就执行保存操作,不会报错)
 session.saveOrUpdate(employ);





这篇关于Hibernate的 SessionFactory,Configuration,Query ,Criteria接口简介,及Query的查询方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539911

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC