Hibernate中实现MYSQL的limit功能

【Java】Hibernate(三)Query接口实现分页查询 【HQL简介】      Hibernate Query Language 是面向对象的查询语言,它和SQL相似,提供了丰富灵活的查询能力。在Hibernate提供的各种检索方式中,HQL是使用最广的一种检索方式。介绍完Hibernate的映射,会再详细介绍HQL。 【分页查询】      前提:      User类、关联映射文件和Hibernate配置文件都已经写好。   阅读详情

Hibernate实现sql中的limit的方法也很简单,原理是创建一个查询之后,给当前查询添加start和limit两个参数,之后执行查询即可。代码如下所示。

 

 

1. [代码][Java]代码    跳至[1][全屏预览]

01public List<KnowledgeExpertArticle> findKnowledgeExpertArticleForSearch(
02 
03       String keyName, Object value,final int start,final int limit) {
04 
05       //
06 
07       log.debug("search knowledgeExpertArticle by :"+value);
08 
09       try{
10 
11           final String hql = "form KnowledgeExpertArticle as model where model.'"+keyName+"' like '%"+value+"%' order by model.expertArticleId DESC";
12 
13           log.info(hql);
14 
15           List resultList = getHibernateTemplate().executeFind(
16 
17              new HibernateCallback() {
18 
19                  public Object doInHibernate(Session arg0)
20 
21                         throws HibernateException, SQLException {
22 
23                     Query query = arg0.createQuery(hql);
24 
25                     query.setFirstResult(start);
26 
27                     query.setMaxResults(limit);
28 
29                     return query.list();
30 
31                  }
32 
33
34 
35              });
36 
37           return resultList;
38 
39          
40 
41       }catch(RuntimeException re){
42 
43           throw re;
44 
45       }
46 
47    }

 

Hibernate中的MySQL分页查询技术指南 Hibernate Criteria API为开发者提供了一种面向对象的方式来构建和执行数据库查询。与直接使用原生SQL语句相比,Criteria API的好处在于它能够提供一个更安全和更灵活的查询机制。它支持运行时的查询动态构建,使得代码更加清晰,并且减少了因拼写错误或语法错误而引起的问题。该API特别适用于那些复杂查询条件较多、需要频繁修改查询逻辑以及需要更好的类型安全的场景。 阅读详情

相关推荐

Spring+Hibernate+MySQL实现高效分页技术实践

在现代Java企业级应用开发中,Spring框架已经成为不可或缺的核心。它不仅提供了一个全面的编程和配置模型,还涵盖了从核心容器、数据访问/集成、Web模块到安全、消息和测试等众多领域。本章将带您探索Spring框架的基本概念、核心组件以及如何在项目中有效地使用Spring框架。在数据库操作中,分页是常见的需求,尤其是在处理大量数据时,为了提高用户体验和降低服务器压力,通常需要对数据进行分批加载。SQL语句中的LIMIT和OFFSET关键字是实现分页查询的核心。

weixin_42355400的博客 997

SQL语句中LIMIT的参数传递问题

这里简单说下sql语句中使用LIMIT是为了返回前几条或者中间几条数据,达到页面的分页效果;

qq_53446972的博客 786

面板数据分析中的随机前沿软件FRONTIER Version 4.1应用

随机前沿模型是一种用于评估单位效率的统计方法。它考虑了输入和输出的随机性,允许我们在效率评估中引入不确定性。随机前沿模型通常用于评估生产单位、金融机构、医院等各种类型的决策单元的效率。FRONTIER是一个广泛使用的随机前沿分析软件,具有用户友好的界面和强大的功能。它提供了估计效率、前沿分析和模型比较的工具,使用户能够深入研究单位的效率和绩效。面板数据是一种包含多个单位(通常是时间序列数据)的数据类型,可以用于分析单位在不同时间点的变化和效率。

目标检测专栏持续更新中,改进YOLO系列通用,适用v5、v7、v8、所有博客均是团队原创博客,所有文章禁止转载,违者必究。 2981

Hibernate实现limit语句效果

Hibernate hibernate实现limit效果 由于hql语句内无法直接书写limit语法,所以需要通过别的方式来达成这个效果 limit效果一般需要有两个参数:开始位置start和查询数量num。两个参数都是final int型 实现代码如下: try { //首先新建一个final型的hql语句 final String hql="...

weixin_30762087的博客 785

文件上传漏洞攻击与防范方法

文件上传漏洞攻击与防范方法 文件上传漏洞简介: 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 文件上传漏洞危害: 上传漏洞与SQL注入或 XSS相比 , 其风险更大 , 如果 Web应用程序存在上传漏洞 , 攻击者上传...

m0_38103658的博客 4万+

STM32实战:电容触摸屏I2C转USB HID设备全解析

本文详细解析了基于STM32的电容触摸屏I2C转USB HID设备实现方案。通过硬件选型、协议分析和代码实现,展示了如何将GT911触摸屏数据转换为标准USB HID协议,并提供了关键调试经验与性能优化技巧,为智能家居控制面板等应用提供高性价比解决方案。

weixin_42548829的博客 320

hibernate防止sql注入对参数赋值传参数实例

Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定:  PrepareStatement pre=connection.prepare(“select * from User whereuser.name=?”);  pre.setString(1,”张三

ljlj的专栏 2769

Codex API 直接集成指南:告别中转代理,构建稳定高效的 AI 应用

在 AI 应用开发中,API 集成是连接模型能力与业务逻辑的核心环节。其基本原理是通过 HTTP 协议,按照服务提供商定义的规范发送请求并解析响应,实现远程调用。标准化的 API 设计确保了跨平台和跨语言的互操作性,其技术价值在于提供了稳定、可控且可扩展的服务接入方式,是构建企业级智能应用的基础。在实际应用场景中,开发者常需集成如 Codex 这类聚合了多种大语言模型的平台,以调用诸如 DeepSeek 等先进模型。然而,部分开发者仍依赖过时的第三方中转代理工具,这不仅引入了单点故障和版本锁定的风险,还可能

weixin_28224217的博客 338

Hibernate实现limit查询方法

Hibernate实现sql中的limit的方法也很简单,原理是创建一个查询之后,给当前查询添加start和limit两个参数,之后执行查询即可。代码如下所示。 public List findKnowledgeExpertArticleForSearch( String keyName, Object value,final int start,final int limi

Kevinzhangfei的专栏 2万+

华为OD机试 - 名字的漂亮度(Java 牛客练习题)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。给出一个字符串,该字符串仅由小写字母组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。给出多个字符串,计算每个字符串最大可能的“漂亮度”。第一行一个整数N,接下来N行每行一个字符串。数据范围:输入的名字长度满足。每个字符串可能的最大漂亮程度。

学Java,找哪吒 1785

第1讲|AI产品经理全景图谱:不是“会用AI工具”,而是能对AI产品结果负责

本文从岗位本质出发,系统拆解 AI 产品经理的职责、岗位类型与能力模型,帮助读者理解 AI PM 与传统 PM 的核心差异,明确自己适合的转型方向,并建立“对 AI 产品结果负责”的产品认知。

从零开始,掌握网络安全。提供全面的网络安全教程、攻防演练技巧和行业动态。 1014

Hibernate的分页(基于数据库中分页)MySQL

Hibernate的分页,基于数据库的分页 下面是获取总共页面的totalCount,用到了HQL的拼接,用到了removeSelect()获得从From开始语句,并对Order by 语句进行了拼接成sql语句select count(*) from  user   Integer i = (Integer) this.getHibernateTemplate().find("select

林羽枫 2869

【第2章>第10节】深度学习DenseNet模型分析与matlab仿真

本文介绍了基于DenseNet深度学习模型的图像分类MATLAB实现方法。主要内容包括:1. DenseNet模型原理,详细解析了初始卷积层、密集块、过渡层等核心结构;2. 在MATLAB环境下完成DenseNet工具箱安装和测试样本准备;3. 实现图像预处理(统一缩放为224×224)、模型训练和测试的完整流程;4. 提供了混淆矩阵和准确率等测试结果分析。文章附带完整的MATLAB程序代码和操作视频教程,适合深度学习初学者快速掌握DenseNet模型的图像分类应用。通过实际测试,验证了该方案的有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 330

QuerySyntaxException unexpected token: limit JPA分页分页查询

第一次写java,总结了一点经验我以为分页是直接写sql语句,然后执行sql语句,但是 抛出QuerySyntaxException unexpected token: limit错误,然后百度发现,JPQL里面没有limit的,使用Hibernate的setFirstResult,setMaxResults实现数据库分页 ,列如query.setFirstResult(0),query.setM...

ljwaheng的博客 1710

Python爬虫实战:研究Pandas,构建车质网各车型数据采集和分析系统

研究结果表明,通过网络爬虫技术可以有效地获取公开的汽车投诉数据,这些数据经过适当的清洗和处理后,可以揭示出丰富的汽车质量信息。)作为国内专业的汽车质量投诉受理平台,自 2010 年成立以来,已累计接收消费者投诉信息超过 200 万条,这些数据包含了车型、投诉时间、投诉问题、处理状态等多维度信息,具有极高的分析价值。:通过对车质网数据的分析,能够挖掘出有价值的汽车质量信息,为消费者购车提供参考,为汽车厂商改进产品质量和服务提供依据,同时也能为相关监管部门提供数据支持。

ylfhpy的博客 937

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Java中几种常用的分页

在项目中,经常会查询大量数据,这就要用到分页展示。本文数据库是mysql 1. limit关键字 service层 @Service @Transactional public class ImplStudentService implementsStudentService { @Resource private StudentDao studentDao; @Overr...

橙子博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Oracle row_number() over()解析函数高效实现分页

在刚出来工作时!当时还没接触Oracle时候,做的第一个项目用来ibatis 当时在做分页的时候用的是ibatis自带的分页功能方法queryForPaginatedList(java.lang.String id, int pageSize), http://ivanl.iteye.com/blog/24739 http://www.iteye.com/topic/544765 这里有详...

猪鼻驴耳 192

WINCC7.3破解文件

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

oracle 为什么分页,Oracle和分页

在MySql中,使用LIMIT子句可以使用单个SQL语句轻松实现分页的概念,如下所示.SELECT country_id, country_nameFROM country cORDER BY country_id DESCLIMIT 4, 5;它将检索SQL查询检索的结果集中从5到10开始的行.在Oracle中,使用带有子查询的行号可以实现同样的目的,使得任务有点繁琐,如下所示.SELECT c...

weixin_36380063的博客 174

使用hibernate实现mysql中limit的查询

给大家分享个知识点,hibernate 的hql不支持limit的使用。以后大家如果有限制查询从第几条至第几条时。就用          List investments = new ArrayList();         Session session = this.getSession();         String hql = "from SiteInve

gtlishujie的博客 3466

Hibernate 中limit 不识别

使用hibernate代替mysql中limit进行分页 mysql分页语句很简单: select * from table  limit 开始索引,查寻数量; 当用hibernate时: Query query = session.createQuery("from table limit 10,20"); 这样有错,hibernate不能直接在hql里写limit,hiberna

ITpengcheng的专栏 4311

使用hibernate代替mysql中limit进行分页

mysql分页语句很简单:  select * from table  limit 开始索引,查寻数量;   当用hibernate时:  Query query = session.createQuery(“from table limit 10,20″);  这样有错,hibernate不能直接在hql里写limit,hibernate不识别limit,  解决如下:  pub

zb0567的专栏 7291

Oracle MySql以及Hibernate实现分页

大学时学习目标性不强,刚接触J2EE时,发现有太多的知识不熟悉,太多的知识需要去学习。但是在自己写Demo的时候,感觉到很多知识其实在用到的时候去网上找找就能解决,于是一个不太好的想法蒙蔽了我的双眼:不用主动去弥补自己知识的薄弱点,遇到时现学就OK了。分页,想必是一个很常用的功能,当时听同学说分页不难,于是就落下了。现在工作时遇到,决定好好记录下各常用数据库实现分页方式,没有考虑性能的问题。 1

前人种树,后人乘凉 2693

MySql中的limit的使用

以前从hibernate中学习到,如果要从oracle中查询出从第m行开始的n条记录,SQL应该是:select * from ( select row_.*, rownum rownum_ from (select id, name, sex from t_user ) row_ where rownum m今天又从hibernate中学习到了MySQL中的实现:select id, name

ph's blog 2226

hibernate下获取mysql表中的rownum所遇bug

在项目中,想要获取mysql的行号,好不容易进行查找进行转换可以得到行号,语句类似于“set @rownum=0, @preval=null; select @rnk:=IF((@rownum := @rownum + 1) and (@preval sal), @rnk, @rownum) AS rnk, @preval:=sal sal FROM emp order by sal;”在mys...

专注于 Java 后端架构、微服务、分布式、前端及 AI 领域的技术分享,是开发者获取硬核知识、交流实战经验的专业博客。 497
上一篇: 在JAVA项目中实现RSS功能
下一篇: 通过数据字典来查询表的字段,写一个存储过程输入一个表名然后把列存进一个表中
爪爪的瓜瓜
博客等级 码龄14年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值