Hibernate学习之路(6) Hibernate5种查询方式

某智能物流无人值守系统 ExportReport SQL注入漏洞复现 某智能物流无人值守系统 ExportReport存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。 阅读详情

Hibernate一共有5种查询方式
* OID查询:
根据id查询一个实体
方法:
get和load
*SQL查询:
使用sql语句查询数据库
方法:
第一种:SQLQuery
第二种:session的doWork方法,它可以获取connection
*HQL查询:
使用HQL语句查询数据库
*QBC查询:
使用Criteria对象查询数据库
* 对象导航查询:

public class Dome4 {
     /*
     * HQL查询:
     * 涉及的对象:
     *  Query
     * 获取方式:
     *  session.createQuery(string hql);
     * 参数含义:
     *  使用hql语句查询数据库
     *  hql语句的写法:把表名换成实体类名,把列名换成实体类属性名
     * 
     * 
     */
    //基本查询
    @Test
    public void test01(){
    Session session = HibernateUtil.getCurrentSession();
    Transaction tx = session.beginTransaction();
    //获取Query对象
    Query<Customer> query  = session.createQuery("from Customer");
    //获取结果集
    List<Customer> list = query.list();
    for (int i = 0; i < list.size(); i++) {
        Customer customer = list.get(i);
        System.out.println(customer.toString());
    }
    tx.commit();
    }

    //条件查询
    @Test
    public void test02(){
    Session session = HibernateUtil.getCurrentSession();
    Transaction tx = session.beginTransaction();
    //获取Query对象
    //这里要注意:写hql语句时,里面的列名不再是数据表中的列名,而是实体类的属性名,写的时候不要弄错了

    //Query<Customer> query  = session.createQuery("from Customer where custName = 'aa' ");

    Query<Customer> query  = session.createQuery("from Customer where custName = :name ");
    query.setParameter("name", "aa");

    //获取结果集
    List<Customer> list = query.list();
    for (int i = 0; i < list.size(); i++) {
        Customer customer = list.get(i);
        System.out.println(customer.toString());
    }
    tx.commit();
    }

    //排序查询
    @Test
    public void test03(){
    Session session = HibernateUtil.getCurrentSession();
    Transaction tx = session.beginTransaction();
    //获取Query对象
    Query<Customer> query  = session.createQuery("from Customer");
    //获取结果集
    List<Customer> list = query.list();
    for (int i = 0; i < list.size(); i++) {
        Customer customer = list.get(i);
        System.out.println(customer.toString());
    }
    tx.commit();
    }

    //分页查询
    @Test
    public void test04(){
    Session session = HibernateUtil.getCurrentSession();
    Transaction tx = session.beginTransaction();
    //获取Query对象
    Query<Customer> query  = session.createQuery("from Customer");
    //分页查询
    //设置查询开始记录索引
    query.setFirstResult(0);
    //设置查询记录的条数
    query.setMaxResults(2);
    //相当于mysql中的    limit 0,2

    //获取结果集
    List<Customer> list = query.list();
    for (int i = 0; i < list.size(); i++) {
        Customer customer = list.get(i);
        System.out.println(customer.toString());
    }
    tx.commit();
    }

    /*
     * 
     * 统计查询
     * 聚合函数:count sum avg max min
     */

    @Test
    public void test05(){
    Session session = HibernateUtil.getCurrentSession();
    Transaction tx = session.beginTransaction();
    //获取Query对象
    Query query  = session.createQuery("select count(*) from Customer");
    //获取结果集
    //当返回的结果唯一时,使用uniqueResult()方法
    long sum = (long) query.uniqueResult();
    System.out.println(sum);

    tx.commit();
    }

    /*
     * 投影查询
     * 
     * 当我们查询时,只需要部分对象,而不是全部,并且希望返回结果用实体类来封装
     * 投影查询用法:
     *  
     */
    @Test
    public void test06(){
    Session session = HibernateUtil.getCurrentSession();
    Transaction tx = session.beginTransaction();
    //获取Query对象
    //Query query  = session.createQuery("select custid,custName from Customer");
    /*
     * 在select语句中使用new语句,并且实体类最好写限定名称即   包名.实体类名
     * 在实体类中添加对应参数列表的构造函数
     * 
     */
    Query query  = session.createQuery("select new entity.Customer(custid,custName) from Customer");
    //获取结果集
    List<Customer> list = query.list();
    for (int i = 0; i < list.size(); i++) {
        Customer customer = list.get(i);
        System.out.println(customer.toString());
    }
    tx.commit();    
    }



}
三模冗余、纠错编码、单粒子翻转防护 本文探讨了高可靠性FPGA系统设计的三大关键技术:三模冗余(TMR)、纠错编码(ECC)和单粒子翻转(SEU)防护。TMR通过三个并行模块和表决器实现容错,但会增加硬件资源和功耗;ECC利用汉明码等编码方式检测和纠正数据错误,适用于存储器保护;SEU防护则针对高能粒子引发的位翻转问题,采用配置刷新、TMR和ECC等方法。文章还通过Verilog代码示例展示了这些技术的实现,并提出了一个综合应用案例,结合三种技术构建高可靠性控制系统。这些技术在航空航天、医疗设备等关键领域具有重要应用价值。 阅读详情

相关推荐

基于ROS下的安卓手机图像和IMU跑ORB-SLAM3

接之前文章继续,手上没有现成的单目+IMU硬件,但是安卓手机几乎人人都有。因此,本文讲下如何用手机跑ORB-SLAM3的Mono和Mono_Inertial。 1. 手机与PC通信 基于ROS下的信息发布和订阅,手机和PC在一个局域网下进行信息(image和IMU)传输。 手机APK参考了github上的2个开源Android_Camera-IMU和android_ros_sensors,基于ros_java生成安卓APP,下载安装任一个APP到安卓手机,界面分别是这样: 手机和PC连一个无

h_372101的博客 1万+

hibernate获取connection

/** * 得到session * @return */ public static Session getSession(){ // get session Session session = getSessionFactory().openSession(); return session; } public static Connecti

回家换拖鞋的专栏 1958

基于Python大数据的智能交通分析系统

该系统能够实时监测交通状况,分析交通流量,预测交通趋势,为交通管理部门提供决策支持,帮助缓解交通拥堵,提高交通运行效率,减少交通事故发生率,改善市民出行体验。它能够为交通管理部门提供决策支持,帮助缓解交通拥堵,提高交通运行效率,减少交通事故发生率,改善市民出行体验,促进交通产业的健康发展。数据采集层:通过传感器、GPS设备、交通摄像头等数据源,实时采集交通数据,如车辆速度、位置、道路拥堵情况等。数据分析层:运用统计学方法、机器学习算法等,对处理后的数据进行深入分析,挖掘交通规律,预测交通趋势。

qq3828614760的博客 2969

hibernate5.0 session.connection() 弃用解决

公司hibernate项目升级,升级hibernate5.x版本时发现 session.connect() 在hibernate4.x 中已弃用。 解决方法: 1、使用(SessionImpl) session; //两种获取session方式 Session session = currentSession(); Session session = getSessionFactory().getCurrentSession(); .

tmd 2110

C#串口通讯实战:如何用SerialPort类搞定工业传感器数据采集(附完整代码)

本文详细介绍了如何使用C#的SerialPort类实现工业级传感器数据采集,涵盖串口通讯基础配置、数据帧处理、异常恢复机制及性能优化策略。通过实战代码示例,帮助开发者构建稳定可靠的工业数据采集系统,特别适合需要处理高频数据采集和复杂工业环境的场景。

weixin_42525551的博客 1084

在 Linux 虚拟机中手动安装 VMware Tools

对于 Linux 虚拟机,您可以从命令行手动安装 VMware Tools。对于 Linux 的较高发行版,请使用集成的 open-vm-tools 版本。 前提条件 有关 open-vm-tools 的操作系统兼容性的详细信息,请参见《VMware 兼容性指南》,网址为VMware Compatibility Guide - System Search。 开启虚拟机。 确认客户机操作系统正在运行。 因为 VMware Tools 安装程序是使用 Perl 编写的,请确认已在客户机操作系统中安..

m0_62526815的博客 1755

hibernate+spring中怎么得到connection

1,只要先得到sessionFactory对象 2,然后通过sessionFactory的子类SessionFactoryImplementor 的 getConnectionProvider() 来 得到ConnectionProvider 3,connectionProvider。getConnection(); ConnectionProvider cp = ((Session

qq_23476319的博客 1540

【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(2023/12/1更新)

ShaderGraph是Unity中的一个可视化工具,用于创建和编辑图形着色器。其意义在于简化编写复杂着色器的过程,减少对具体编程语言的依赖,使艺术家和设计师可以更方便地创建各种美术效果。使用ShaderGraph可以通过图形界面设置着色器属性,包括颜色、纹理、光照等,并在视窗预览中即时显示结果,从而快速迭代和调整着色器。使用ShaderGraph需要先安装Unity 2018.1或以上版本,并添加ShaderGraph插件。打开ShaderGraph面板后,可以通过拖放节点并连接它们来创建着色器。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4万+

从hibernate中获取jdbc连接

使用Hibernate的过程中,有时候需要直接使用SQL语句来操作数据库(虽然Hibernate不推荐使用,但是有时候还是会使用到的,比如说批处理),这个时候就要求我们首先获得JDBC的连接。获得JDBC连接的方式有:1、先获得Session,然后从Session中获得连接      session.connection();      但是这个方法Hibernate不推荐使用,The metho...

彻底拆分,一切可控! 1233

TDS水质检测传感器原理图设计,已量产(液体传感器)

最近调试了一款针对生活用水、水培系统的 TDS 水质检测模块 —— 毕竟 TDS(总溶解固体)值直接关联水的洁净程度,是这类场景里既实用又易获取的水质指标。下面拆解下这个电路的设计逻辑,说说每个部分是怎么配合实现精准检测的。

不脱发的程序猿 1536

置顶必读(1) |《YOLOv8实战:从入门到深度优化》专栏导读,带你一文了解本专栏!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 14万+

hibernate session获取Connection

[code="java"]public int executeSql(String[] sql) { int key = 0; ConnectionProvider cp = ((SessionFactoryImplementor) getSession().getSessionFactory()).getConnectionProvider(); Connection co...

zyazyz008的专栏 323

AgentScope Java 2.0 项目实战: 从零构建自己的个人AI助手“小龙虾“

本文系统介绍如何基于Spring Boot WebFlux、React 18和TypeScript,从零搭建一个本地化的个人AI助手管理平台——AgentScope Paw。项目支持多Agent创建与管理、SSE流式对话、工作区文件CRUD、技能市场、子智能体孵化、AI辅助起草Agent配置等核心功能,并深度集成钉钉、企业微信、飞书、GitHub等IM通道。

program哲学 1421

学习Hibernate5这一篇就够了

目录第一章 Hibernate5快速入门1.1、Hibernate5概述1.2、Hibernate5下载1.3、Hibernate5工程搭建1.4、Hibernate5测试代码1.5、Hibernate5工具类第二章 Hibernate5核心配置2.1、两种配置方式2.1.1、属性文件的方式(了解)2.1.2、xml文件的方式(掌握)2.2、核心配置讲解2.2.1、核心的配置2.2.2、映射的配置2.3、核心对象讲解2.3.1、Configuration2.3.2、SessionFactory2.3.3、S

轻松的小希 8079

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hibernate 有几种查询方式?

hibernate 有几种查询方式?

liuruiaaa的博客 994

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Hibernate查询方式——QBC查询方式

参考文: Hibernate查询方式汇总  http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html  第十一章 Hibernate的查询 Query by Criteria(QBC)  http://ju.outofmemory.cn/entry/30525 Hibernate总的来说共有三种查询方式:HQL、QBC和SQL三

Sun_Rise2011的专栏 5527

hibernate查询竟然有6种方法

hibernate查询竟然有6种方法,用了hibernate好久了,偶然才发现hibernate有那么多种查询方式 以前 也系统化的学过hibernate 但是仅仅 只是记得hibernate的sql 和 hql 最基本的两种查询 默默的心凉了好久,看来以前也是没有真正的理解 为了不断的增加自己的知识,我也需要不断的发现和探索,并不断的发一些文章,记录自己的进步 先把这次的6个方法都列出来

活着 就好好的活着 1万+

hibernate的三种查询方式

我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。

2401_84411473的博客 1577

Hibernate查询方式

Hibernate查询方式 Hibernate查询方式 1 对象导航查询 (1)根据id查询某个客户,再查询这个客户里面所有的联系人 2 OID查询 (1)根据id查询某一条记录,返回对象 3 HQL查询 (1)Query对象,写hql语句实现查询 4 QBC查询 (1)Criteria对象 5 本地sql查询 (1)SQLQuery对象,使用普通sql实现查询 ...

qq_44921837的博客 646

Hibernate中的五种查询方式

上篇内容回顾 1、表与表之间关系 一对多关系:两张表,多的表加外键。 多对多关系:三张表,关系表加外键。 一对一关系:一张表。两张表,外键唯一,或者主键对应。 2、Hibernate中的一对多配置 搭建Hibernate基本环境,引入jar包 创建表 创建实体: 一的一方,放的是多的一方的集合 多的一方,放的是一的一方的对象 创建映射: 一的一方,配置set 多的一方,配置<many-to-one> 编写测试类 Hibernate的一对多的操作: 级联操作:cascade,用于操作其关联的对象

pipizhen_的博客 1052

hibernate查询方式

总的来说,hibernate查询方式可以分为以下几种: HQL,QBC,SQL,QBE,EJBQL 我先来简单解释以下这几种查询方式,具体后面会讲。 HQL:Hibernate Query Language 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式。QBC:Query By Criteria比HQ

sushauai的博客 828

hibernate查询的几种方式

使用这种方式不需要写明映射的类型,Hibernate会通过配置自动给我们转,但是由于Hibernate有两种日期格式:Date和TIMESTAMP,所以对于日期类型必须写明映射的类型。//登录(用":命名"占位符,用setProperties设值,命名参数必须要与被绑定的属性名相同)1) setFirstResult(int):指定从哪一个对象开始查询,参数是索引位置,从0开始。//登录(用":命名"占位符,用setParameter设值)1、 第一种,用?//登录(用":命名"占位符)......

安卓世界库 1459

Hibernate查询方式及关联

Hibernate查询方式 hql:hibernate QUery Language :以字符串的形式进行数据查询。 -------------面向对象的字符串格式。 原生sql/本地查询:就是纯粹的sql语句。 Criteria查询:动态生成查询语句。 2.使用hql的步骤: ---获得session a.创建Query对象,并且执行sql语句 b.接受返回值。 c.处

新仅可的博客 1308

Hibernate的查询方式

文章目录1. 对象图导航查询2. OID查询3. HQL查询3.1 基本查询3.2 条件查询3.3 分页查询3.4 排序查询3.5 统计查询3.6 投影查询4. QBC查询4.1 基本查询4.2 条件查询4.3 分页查询4.4 排序查询4.5 统计查询5. 本地SQL查询6. 多表联合查询 1. 对象图导航查询 对象图导航检索方式是根据已经加载的对象,导航到他的关联对象,它利用类与类之间的关系来检...

weixin_45990046的博客 493
上一篇: Hibernate学习之路(6) 将session与线程绑定
下一篇: Hibernate学习之路(7) Hibernate JPA
QEcode
博客等级 码龄10年 39粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值