Hibernate中的Query一些基本用法

hibernate中的Query接口方法 hibernate中的Query接口方法Query的获取Query的方法参数绑定方法setXxx(int var1, Xxx var2)setXxx(String var1, Xxx var2)setParameterxxx()获取查询结果方法list()iterate()uniqueResult()语句执行方法executeUpdate()分页方法setFirstResult(int var1)setMaxResults(int var1) Query的获取 Query q = session.creat 阅读详情

/*

**
* 添加
*/
public void save(Stu stu){
   try {
    tran=this.GetSession().beginTransaction();
    this.GetSession().save(stu);
    tran.commit();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
}

/**
* 使用HQL全查询
*/
public List getallbyHQL(){
   List arr=null;
   try {
    String hql="from Stu";
    Query query=this.GetSession().createQuery(hql);
    arr=query.list();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return arr;
}
   /**
* 根据主键查询
*/
public Stu getbyID(int id){
   Stu stu=null;
   try {
    stu=(Stu) this.GetSession().get(Stu.class, id);
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return stu;
}

/**
* 根据对象属性查询(使用Query)
*/
public List getbyPropertyQuery(String name){
   List arr=null;
   try {
    //这里不能像SQL语一样select * from Stu where SName=:name,这是不对的。
//    Query query=this.GetSession().createQuery("from Stu where SName=:name");
//    query.setString("name", name);
    //或者
    Query query=this.GetSession().createQuery("from Stu where SName=?");
    query.setString(0, name);
    arr=query.list();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return arr;
}

/**
* 根据对象属性查询(使用Criteria)
*/
public List getbyPropertyCriteria(String name){
   List arr=null;
   try {
    Criteria cri=this.GetSession().createCriteria(Stu.class);
    Criterion c1=Expression.eq("SName", name);
    cri.add(c1);
    arr=cri.list();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return arr;
}

/**
* 查询部分属性
*/
public List getProperty(){
   List arr=new ArrayList();
   try {
    String hql="select s.SName,s.SSex from Stu as s";
    Query query=this.GetSession().createQuery(hql);
    List list=query.list();
    Iterator iter=list.iterator();
    while(iter.hasNext()){
     Object[] obj=(Object[]) iter.next();
     Stu s=new Stu();
     s.setSName(obj[0].toString());
     s.setSSex(obj[1].toString());
     arr.add(s);
    }
   } catch (HibernateException e) {
    this.CloseSession();
   }
   return arr;
}
/**
* 查询一个属性
*/
public List getoneProperty(){
   List arr=new ArrayList();
   try {
    String hql="select s.SName from Stu as s";
    Query query=this.GetSession().createQuery(hql);
    Iterator iter=query.iterate();
    while(iter.hasNext()){
     Object obj=(Object) iter.next();
     Stu s=new Stu();
     s.setSName(obj.toString());
     arr.add(s);
    }
   } catch (HibernateException e) {
    this.CloseSession();
   }
   return arr;
}

/**
*查询一个对象一个属性值
*/
public Object getonlyProprotyValue(int s_id){
   Object obj=null;
   try {
    String hql="select s.SName from Stu as s where s.SId=?";
    Query query=this.GetSession().createQuery(hql);
    query.setInteger(0, s_id);
    obj=query.uniqueResult();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return obj;
}
/**
* SQL查询
*/
public List getallBYSQL(){
   List arr=null;
   try {
    String sql="select {c.*} from stu as c";
    SQLQuery sqlquery=this.GetSession().createSQLQuery(sql);
    sqlquery.addEntity("c",Stu.class);
    arr=sqlquery.list();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return arr;
}

/**
* 根据对象查询
*/
public List getallByObject(Stu s){
   List arr=null;
   try {
    String hql="from Stu as s where s=:stuentity";
    //或者
    //String hql="from Stu as s where s.SId=:stuentity";
    Query query=this.GetSession().createQuery(hql);
    query.setEntity("stuentity", s);
    arr=query.list();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }  
   return arr;
}

/**
* 模糊查询
*/
public List getallQueryLike(String name){
   List arr=null;
   try {
    String hql="from Stu as s where s.SName like :name";
    Query query=this.GetSession().createQuery(hql);
    query.setString("name", "%"+name+"%");
    //不能
    //query.setString("name", "'%"+name+"%'");
    arr=query.list();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return arr;
}
   /**
* 统计函数
*/
public int CountStu(){
   int count=0;
   try {
    String hql="select count(*) from Stu";
    Query query=this.GetSession().createQuery(hql);
    count=(Integer) query.uniqueResult();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return count;
}

   /**
* 条件统计
*/
public int CountByWhere(String sex){
   int count=0;
   try {
    Query query=this.GetSession().createQuery("select count(*) from Stu where SSex=:sex");
    query.setString("sex", sex);
    count=(Integer)query.uniqueResult();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return count;
}

/**
* 统计平均值
*/
public float VagAge(){
   float vag=0;
   try {
    Query query=this.GetSession().createQuery("select avg(SAge) from Stu");
    vag=(Float)query.uniqueResult();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return vag;
}

/**
* 求和函数
*/
public int sumage(){
   int sum=0;
   try {
    Query query=this.GetSession().createQuery("select sum(SAge) from Stu");
    sum=(Integer)query.uniqueResult();
   } catch (HibernateException e) {
    throw e;
   }finally{
    this.CloseSession();
   }
   return sum;
}

docker安装fastdfs+nginx配置 docker安装fastdfs+nginx,实现图片或文件的上传与下载 阅读详情

相关推荐

Windows电脑如何用MobaXterm连接宇树G1机器人?保姆级SSH配置指南

本文提供了一份详细的保姆级教程,指导Windows用户使用MobaXterm通过SSH连接宇树G1机器人。内容涵盖从物理网络配置、MobaXterm安装与SSH会话创建,到文件传输、X11转发等高级功能,并包含常见问题排查与安全加固建议,帮助开发者快速建立稳定可靠的远程开发连接。

purple的博客 878

hibernate 查询返回列表

1. 使用SQLQuery对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。最简单的情况下,我们可以采用以下形式: List cats = sess.createSQLQuery( " select * from cats " ).addEntity(Cat. class ).list(); 这个查询指定了:...

wangzhantao的专栏 977

Zlib1.2.11源码编译(Win10+VS2019)

下载 下载网址: zlib Home Site 得到文件: 解压缩到“D:\SourceCodes\zlib-1.2.11” 使用CMake配置、生成并打开项目 将CMakeLists.txt拖入CMake,配置(Configure): 生成(Generate) 打开项目(Open Project),CMake调用VS2019打开项目 生成debug版本 构建项目ALL_BUILD。成功生成debug版本 在“D:\Sourc...

Alexabc3000的专栏 1895

getSession().createQuery__getHibernateTemplate().find

getSession()是会自动释放连接的。但是在一个线程内getSession会get很多个session(就是开很多个会话、连接),很可能导致数据库连接超过上限。所以推荐使用getHibernateTemplate。”通过继承HibernateDaoSupport我们有两个选择: getSession().createQuery("from Users"); getHibernateTempla

qq_36047372的博客 791

实战指南:彻底清除TIA Portal卸载后遗留的SQL Server WinCC实例

本文详细介绍了如何彻底清除TIA Portal卸载后遗留的SQL Server WinCC实例,解决重新安装时的冲突问题。通过控制面板排查、注册表验证、安全卸载操作流程和注册表深度清理等步骤,确保完全移除残留组件,避免系统崩溃。文章还提供了安装环境重建策略和预防措施,帮助工程师高效管理西门子自动化软件。

weixin_30482181的博客 405

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 713

getSession().createQuery(hql)带来莫名其妙的bug

使用SSH2框架开发了一套业务应用网站,在开发环境下运行正常,没暴露任何问题,这几天安排测试,安装了一台服务器,结果,四人测试一会就没响应了,由正常进入死锁状态有时时间长一点,有时时间短些,没有规律,也没发现具体引起错误的业务操作,故障发生的很偶然,很随机,顿时感到茫然,束手无措无措。 经过长时间反复改变测试方法,多人多次到单人单业务,逐个尝试,最后发现的规律是,某个报表连续点击保存按钮7次后,

li_hai的专栏 1万+

CentOS 环境 sngrep 安装及使用

在呼叫中心类应用开发过程中,经常需要对 SIP 信令抓包,分析排查问题。通常抓包的工具非常多样,如 Wireshark、tcpdump、ngrep 等都是可选项,但是针对 SIP 信令的抓包,sngrep 则更为好用。因为 sngrep 不仅提供了图形界面,还会将一通会话的 SIP 信令关联汇总,非常直观执行以下命令下载 的相关依赖库 1.2 添加 sngrep 的源并导入 执行下面的命令新增一个源仓库配置文件 然后在该文件中写入以下配置内容 执行命令导入源仓库的公钥 1.3 安装 sngrep

谈谈1974 8149

Mysql语句大全及用法收集

通过 depth 与 parentID 调取全局一级分类方法 @Override /** 通过 depth 与 parentID 调取全局一级分类方法 */ public List getNameByParent(int depth, String id){ String hql="SELECT * FROM category WHERE depth=? AND parentID=? AND isValid=1 AND isLock=0 ORDER BY createdTime DESC".

Riqk_Qin的专栏 555

Docker离线部署OpenWebUI操作步骤

docker离线部署openwebui

m0_49333265的博客 4355

高压控制单元与接触器 —— BMS电池的“高压大门”

高压接触器在BMS电池管理系统中扮演着“高压大门”的角色,负责控制电池包与整车高压母线的连接与隔离。接触器的工作原理基于线圈产生的磁力吸合接点,通过主触点接通高压电流路径,辅助触点检测状态,灭弧结构保护接点。预充电路的设计是为了避免直接连接大电容时产生的浪涌电流冲击,通过预充电阻逐步充电,确保系统安全上电。接触器控制策略包括顺序控制、辅助触点检测、温度监控、故障断电和背靠背MOS辅助控制,以确保系统的高效和安全运行。工程师在选择接触器型号、控制线圈、检测状态、软件冗余控制和预充失败保护等方面提供了具体建议。

weixin_43199439的博客 813

hibernate查询接口Query用法

hibernate的Session接口提供了get,load等按照id查询单个记录的方法,但是大多数时候,我们查询的是实体类的集合列表,这就需要用到复杂查询了,hibernate提供了类sql语句hql,他可以帮助我们编写复杂的查询语句,来做复杂的增删改查操作。这里介绍hibernate提供的Query接口用法。 Query接口的创建是通过Session来创建的,默认需要传入一个hql语句,比如...

feinifi的博客 1万+

基于ZYNQ PL的AD7606数据采集与FFT实时频谱分析:从硬件到创新实现

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKnmpgJm-1750295287594)(https://example.com/fft_plot.png)]本文涉及代码已在Xilinx ZCU102开发板与AD7606评估板上验证通过,采样率支持200KSPS@8通道,FFT计算延迟<1ms。传统MCU+DSP方案难以兼顾速度与功耗,而ZYNQ的PL+PS架构为这一问题提供了完美解决方案。本文实现的ZYNQ PL方案突破了传统处理器的性能瓶颈,通过。

QQ_778132974的博客 339

Hibernate中的核心接口query接口用法

Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句。 Query接口的用法: 通过SessionFactory获得了session对象后,除了可以通过get(类名.class, id)方法得到相应的对象,还可以通过获得Query对象来取得需要的对象  Query query = session.createQuery

tuke_tuke的博客 8734

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Hibernate中的Query接口

一.Hibernate框架的API 学习每一个知识点,都要知道这个知识点的源头是在哪里,只有看最原始的内容,才能让我们理解的更深.对于java来说最原始的就是他的api. 1.框架的API在哪里看? 首先在官网下载这个压缩包,在里面找到 hibernate-release5.0.7.Final\documentation\javadocs\index.html https://source

5456

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hibernate中Query的用法

hibernate中Query的用法   通过SessionFactory获得了session对象后,除了可以通过get(类名.class, id)方法得到相应的对象,还可以通过获得Query对象来取得需要的对象   Query query = session.createQuery("查询语句如from UserBean");   List list = query.list();//

zzrshuiwuhen的专栏 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Hibernate——Query查询

前两篇文章介绍了获取SessionFactory,Session,以及Session的三种状态及其之间的转换,本文势必要将大家最关心的问题做出介绍,也就是大家最关心的通过Hibernate提供的类和方法对数据库进行更深层次的查询。 本篇文章主要介绍Query的查询 1.首先介绍一下实体类 public class User { //id字段,主键 private int id; //用

中场的艺术大师 1万+

Hibernate使用Query查询

面对数据操作中,数据的查询操作永远都是最为复杂的部分,所以如果要进行更加合理的查询操作,那么必须依靠Query接口来实现

Nicholas_GUB的博客 1144

Hibernate利用Query接口进行HQL查询

一、Query的作用 二、Query的使用方法 三、参数设置 四、实例应用 public List list(String querySQL, Map map, Pager page)    throws Exception {   List list = null;   try {    session = sessionFactory.ope

honghailiang的专栏 4641

hibernate的Query和Criteria

hibernate作为持久层框架目前虽然是市场的最优选择,但是其中的设计理念与思想还是需要学习的;这里就我自己遇到的查询部分代码做个总结。使用Query和Criteria和标准sql都在下边了@Test public void testGetLimit() { Session session = sessionFactory.openSession(); Transaction tx1 ...

dzz_bc的博客 936

基于 Hibernate Query 实现分页器

import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.ScrollableResults;/** *//** * Title:分页器 * * Description: * * Copyright: Copyright (c) 

4399

org.hibernate.Query笔记

废话少说,写这篇文章,没有精心准备,想到什么就

BeALittleCat的专栏 2937

hibernate学习之四——Query和Criteria接口

Query 和 Criteria 接口是 Hibernate 的查询接口,用于向数据库查询对象以及控制执行查询的过程。 Query 实例包装了一个 HQL(Hibernate Query Language)查询语句,HQL 查询语句与 SQL 查询语句有些相似,但 HQL 查询语句是面向对象的,它引用类名及类的属性名,而不是表名及表的字段名。 Critieria 接口完全封装了基于字符

AC_coding 1980

hibernate入门(三)——HQL查询(Query)

HQL(Hibernate Query Language)是完全面对对象的查询语句,查询功能强大,具备继承、多态和关联等特性。 Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL语句。 hibernate5中 org.hibernate.Query 被 org.hibernate.query.Query 替代。 在包orm.te...

R15的博客 1万+
上一篇: 过滤器和拦截器的区别
下一篇: Hibernate的缓存机制
zi_jun
博客等级 码龄18年 109粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值