JSP开发中hibernate框架的常用检索方式总结
总结hibernate框架的常用检索方式
1、hibernate框架的检索方式有以下几种:
- OID检索:根据唯一标识OID检索数据
- 对象导航检索:根据某个对象导航查询与该对象关联的对象数据
- HQL检索:通过query接口对象查询
- QBC检索:通过criteria接口对象查询
- SQL检索:通过SQL语句查询
2、HQL检索方式:
- 查询全部数据:session.createQuery("from 类名");
- 根据条件查询:session.createQuery("from 类名 where 属性名=?").setParameter(?号索引(从0开始),条件);
- 分页查询:Query query = session.createQuery("from 类名");-----query.setFirstResult(起始索引);----query.setMaxResults(每页显示的记录数);
- 统计查询:session.createQuery("select count(*) from 类名").uniqueResult();
- 投影查询(就是查询某个字段或某部分字段):session.createQuery("select 属性名1,属性名2 from 类名");
- 别名查询:session.createQuery("select 别名 from 类名 别名");
3、QBC检索方式:
- 查询全部数据:session.createCriteria(类名.class).list();
- 根据条件查询:session.createCriteria(类名.class).add(Restrictions.条件方法名("属性名",条件));
- 分页查询:Criteria criteria = session.createCriteria(类名.class);----criteria.setFirstResult(起始索引);-----criteria.setMaxResults(每页显示的记录数);
- 排序查询:session.createCriteria(类名.class).addOrder(Order.asc/desc("属性名"));
- 统计查询:session.createCriteria(类名.class).addProjection(Projections.rowCount());
- 离线条件查询:(可以解决在持久层中进行繁琐的sql语句的拼接)
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
jsp hibernate 数据保存操作的原理
数据的保存,更新和删除: 1.Session.save()方法: Session.save()方法用于实体对象的持久化保存,也就是说当执行session.save()方法时会生成对应的insert SQL语句,完成数据的保存.如下面的代码: User user=new User(); user.setName("zx"); Transaction tx=session.beginTransaction(); session.save(user); tx.commit(); 当执行到se
-
jsp Hibernate批量更新和批量删除处理代码
以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: tx = session.beginTransaction();Iterator customers=session.find("from Customer c where c.age>0").iterator();while(customers.hasNext()){Customer customer=(Customer)customers.next();customer
-
JSP 开发之hibernate的hql查询多对多查询
JSP 开发之hibernate的hql查询多对多查询 在hibernate的hql查询中,假如说分组信息与试题是多对多关系,那么我们要在hql查询中对含有多个分组信息的试题都要查询出来.并同时查询出相应试题的分组信息.那么此时hql要这样写: String[] groupIds = ojbects[1].toString().split(","); String hql = "SELECT distinct a.id FROM TmEduExamContent a"
-
jsp Hibernate 函数简介
1.Configuration/SessionFactory/Session Configuration实例代表了一个应用程序中Java类型 到SQL数据库映射的完整集合. Configuration被用来构建一个(不可变的 (immutable))SessionFactory. SessionFactory是线程安全的,创建代价很高. Session是非线程安全的,轻量级的.一个Session对应一个JDBC连接, Session的connection()会获取Session与之对应的数据库连
-
JSP开发之hibernate之单向多对一关联的实例
JSP开发之hibernate之单向多对一关联的实例 一对多的基础上来测试单向多对一的关联 hibernate多对一的关联关系定义: 和单向一对多不同的是:一对多是在意的一方的一方定义set集合,在映射文件中 <set name="" table=""> <key name="" /> <one to many class=" 多的一方的包加类名"/> </set> :单向多对一
-
JSP 开发之hibernate配置二级缓存的方法
JSP 开发之hibernate配置二级缓存的方法 hibernate二级缓存也称为进程级的缓存或SessionFactory级的缓存. 二级缓存是全局缓存,它可以被所有的session共享. 二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存. 常用的缓存插件 Hibernater二级缓存是一个插件,下面是几种常用的缓存插件: EhCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的查询缓存提供了
-
jsp hibernate的分页代码第1/3页
可见使用Hibernate,在进行查询分页的操作上,是具有非常大的灵活性,Hibernate会首先尝试用特定数据库的分页sql,如果没用,再尝试Scrollable,如果不行,最后采用rset.next()移动的办法. (一)pager类 * @(#)Pager.java 2005-5-3 * * Copyright (c) 2005, Jeffrey Hsu */ package com.jeffrey.messagelove; /** * Pager holds the page info.
-
jsp Hibernate入门教程第1/3页
例如: 复制代码 代码如下: HibernateTest.java import onlyfun.caterpillar.*; import net.sf.hibernate.*; import net.sf.hibernate.cfg.*; import java.util.*; public class HibernateTest { public static void main(String[] args) throws HibernateException { SessionFacto
-
JSP 中Hibernate实现映射枚举类型
JSP 中Hibernate实现映射枚举类型 问题: Java BO类Gender是枚举类型,想在数据库中存成字符串格式,如何编写hbm.xml? public enum Gender{ UNKNOWN("Unknown"), MALE("Male"), FEMALE("Female"); private String key; private Gender(final String key) { this.key = key; } public
-
JSP开发中hibernate框架的常用检索方式总结
总结hibernate框架的常用检索方式 1.hibernate框架的检索方式有以下几种: OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:通过query接口对象查询 QBC检索:通过criteria接口对象查询 SQL检索:通过SQL语句查询 2.HQL检索方式: 查询全部数据:session.createQuery("from 类名"); 根据条件查询:session.createQuery("from 类名
-
JSP开发中Apache-HTTPClient 用户验证的实例详解
JSP开发中Apache-HTTPClient 用户验证的实例详解 前言: 在微服务框架之外的系统中,我们经常会遇到使用httpClient进行接口调用的问题,除了进行白名单的设置,很多时候我们需要在接口调用的时候需要身份认证.翻了一下官方文档,解决方法很多,但是都不太符合实际业务场景,这里提供一种简单粗暴的解决方法. 解决方法:利用请求头,将验证信息保存起来. 实现代码: public class HttpClientUtils { protected static final Logger
-
JSP开发中在spring mvc项目中实现登录账号单浏览器登录
JSP开发中在spring mvc项目中实现登录账号单浏览器登录 在很多web产品中都需要实现在同一时刻,只能允许一个账号同时只能在一个浏览器当中登录.通俗点讲就是当A账号在 浏览器1当中登录了,此时在浏览器2中登录A账号.那么在浏览器1中的A账号将会被挤出去,当用户操作浏览器1的页面,页面会 跳到登录页面,需要重新登录.那么我们怎么实现这样的功能呢?下面将给大家进行详细的介绍: 原理 用户A使用账号a在浏览器当中登录,然后用户B在另外一台电脑上的浏览器登录账号a,当用户B登录验证成功时,将会触
-
JSP 开发中过滤器filter设置编码格式的实现方法
JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式.在你复制粘贴了无数次request.setCharacterEncoding("gb2312");后,有没有想要一劳永逸的方法呢?能不能一次性修改所有请求的编码呢? 用Filter吧,它的名字是过滤器, 代码如下: import java.io.IOException; import javax.servlet.Filter; import javax.ser
-
flask框架路由常用定义方式总结
本文实例讲述了flask框架路由常用定义方式.分享给大家供大家参考,具体如下: 路由的各种定义方式 请求方式限定 使用 methods 参数指定可接受的请求方式,可以是多种 @app.route('/',methods=['GET']) def hello(): return '<h1>hello world</h1>' 路由查找方式 同一路由指向两个不同的函数,在匹配过程中,至上而下依次匹配 @app.route('/') def hello(): return '<h1&
-
Java项目开发中实现分页的三种方式总结
目录 前言 使用 1.SpringDataJPA分页 2.MyBatis分页 3.Hutools工具类分页 总结 前言 Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用方式也很简单,可本人在工作中除此以外还用到第三种更方便灵活的分页方式,在这里一同分享给大家. 使用 主要分为SpringDataJPA分页.MyBatis分页.Hutools工具类分页几个部
-
vue3中h函数的常用使用方式汇总
目录 前言 render VNode h 渲染组件 h函数中使用"v-model" 使用场景 总结 前言 一般情况下每个vue组件都用"<template>"写html, 但实际还可以在js代码中通过render函数生成dom. 最主要常见组件库也需要配合"h"使用. render render是组件的一个选项, 他的返回值会被作为组件的DOM结构. <script> import { defineComponent} f
-
对Web开发中前端框架与前端类库的一些思考
说起前端框架,我也是醉了.现在去面试或者和同行聊天,动不动就这个框架碉堡了,那个框架好犀利. 当然不是贬低框架,只是有一种杀鸡焉用牛刀的感觉.网站技术是为业务而存在的,除此毫无意义,框架也是一样.在技术选型和架构设计当中,脱离网站业务发展的实际,一味的追求时髦新技术,可能会适得其反,将网站发展引入崎岖小道.就好像一个日均pv只有几百的小型电商网站,却要大喊"某宝就是这么搞的",然后搭建应用服务器集群,使用分布式文件系统和分布式数据库系统...等巴拉巴拉的一堆用来处理高并发,海量数据访问
-
解决JSP开发中Web程序显示中文三种方法
方法一:最简单也是用的最多的方法 <%@ page language="java" pageEncoding="GBK" %> 或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符. 这个方法用于jsp页面中的中文显示. 方法二:使用过滤器 过滤器使用主要针对表单提交,插入数据库的数据都是?号.这也是应为to
-
Andriod开发中引入jar包的正确方式介绍
andriod中如果引入jar包的方式不对就会出现一些奇怪的错误. 工作的时候恰好有一个jar包需要调用,结果用了很长时间才解决出现的bug. 刚开始是这样引用的(eclipse): 右键工程,Build path,java build path, 选择libraries,在右边的按钮中点击"Add External JARs", 然后选择合适的jar包(大部分人应该会这样做). 结果控制台立刻报错:conversion to dalvik format failed with err
随机推荐
- AngularJS 简单应用实例
- Extjs学习笔记之二 初识Extjs之Form
- JS传播事件、取消事件默认行为、阻止事件传播详解
- sz.reg转换成reg.bat的批处理
- Java简单实现约瑟夫环算法示例
- 用Python代码来解图片迷宫的方法整理
- linux shell txt转换成html的实现代码
- js原生日历的实例(推荐)
- 简单的Ruby中的Socket编程教程
- 用批处理实现Auto病毒专杀工具的代码
- ES6中Array.copyWithin()函数的用法实例详解
- JS日期和时间选择控件升级版(自写)
- javascript下拉框不被选中大类的区别方法
- textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)
- 用KWF打造与众不同的VPN服务器
- php函数连续调用实例分析
- Asp.net core中实现自动更新的Option的方法示例
- python接口自动化测试之接口数据依赖的实现方法
- Vue + Elementui实现多标签页共存的方法
- 在小程序中推送模板消息的实现方法