hibernate框架学习之数据查询(HQL)helloworld
package cn.itcast.h3.hql; import java.util.List; import org.hibernate.Query;
import org.hibernate.Session; import cn.itcast.h3.hql.vo.StudentModel;
import cn.itcast.h3.hql.vo.TeacherModel;
import cn.itcast.h3.util.HibernateUtil; public class HQLApp {
//测试简单查询
void testSimple(){
Session s = HibernateUtil.getSession(); //1.HQL
String hql = "from TeacherModel";
//2.Query
Query q = s.createQuery(hql);
//3.获取查询结果
List<TeacherModel> queryList = q.list();
for(TeacherModel tm:queryList){
System.out.println(tm);
} s.close();
}
//链式格式
void testLinked(){
Session s = HibernateUtil.getSession(); //3.获取查询结果
List<TeacherModel> queryList = s.createQuery( "from TeacherModel where uuid <=:uuid").setFirstResult(1).setMaxResults(3).setLong("uuid", 3L).list(); for(TeacherModel tm:queryList){
System.out.println(tm);
} s.close();
}
//别名格式
void testAlias(){
Session s = HibernateUtil.getSession(); //1.HQL
String hql = "select um.nick from TeacherModel um";
//2.Query
Query q = s.createQuery(hql);
//3.获取查询结果
List<String> queryList = q.list();
for(String tm:queryList){
System.out.println(tm);
} s.close();
}
//聚合函数
void testFunctoin(){
Session s = HibernateUtil.getSession();
//1.HQL
String hql = "select sum(age) from StudentModel";
//2.Query
Query q = s.createQuery(hql);
Long avgAge = (Long) q.uniqueResult();
System.out.println(avgAge);
s.close();
}
//按条件查询
void testEntityQuery(){
Session s = HibernateUtil.getSession();
//1.HQL
//编号为4的老师有哪些学生
// String hql = "from StudentModel where teacher.uuid= :uuid";
// //2.Query
// Query q = s.createQuery(hql);
// q.setLong("uuid",4L); String hql = "from StudentModel where teacher = :teacher";
Query q = s.createQuery(hql);
TeacherModel tm = new TeacherModel();
tm.setUuid(4L);
// tm.setTeacherName("李若亮");
//为hql赋值对象参数
q.setEntity("teacher", tm);
List<StudentModel> queryList = q.list();
for(StudentModel sm:queryList){
System.out.println(sm);
}
}
//无条件查询
void testNoCondQuery(){
Session s = HibernateUtil.getSession(); String hql = "from TeacherModel where teacherName = nick";
Query q = s.createQuery(hql);
List<TeacherModel> queryList = q.list();
for(TeacherModel sm:queryList){
System.out.println(sm);
}
}
//投影查询
void testOtherQuery(){
Session s = HibernateUtil.getSession(); String hql = "select new TeacherModel(teacherName,nick) from TeacherModel";
Query q = s.createQuery(hql);
List<TeacherModel> queryList = q.list();
for(TeacherModel sm:queryList){
System.out.println(sm);
}
}
//投影查询list
void testOtherQuery2(){
Session s = HibernateUtil.getSession(); String hql = "select new list(teacherName,nick) from TeacherModel";
Query q = s.createQuery(hql);
List<List<String>> queryList = q.list();
for(List<String> sm:queryList){
for(String sa:sm){
System.out.println(sa);
}
}
}
//查询分组
void testGroupQuery(){
Session s = HibernateUtil.getSession(); String hql = "select skill,count(skill) from StudentModel group by skill";
Query q = s.createQuery(hql);
List<Object[]> queryList = q.list();
for(Object[] objs:queryList){
for(Object obj:objs){
System.out.print(obj+"\t");
}
System.out.println();
}
}
//查询分组
void testObejcts(){
Session s = HibernateUtil.getSession(); String hql = "from java.lang.Object";
Query q = s.createQuery(hql);
List<Object> queryList = q.list();
for(Object obj:queryList){
System.out.println(obj);
}
}
//配置格式的查询
void testConfQuery(){
Session s = HibernateUtil.getSession(); Query q = s.getNamedQuery("getAll");
q.setString("name", "李若亮");
List<Object> queryList = q.list();
for(Object obj:queryList){
System.out.println(obj);
}
} public static void main(String[] args) {
new HQLApp().testConfQuery();
}
}
hibernate框架学习之数据查询(HQL)helloworld的更多相关文章
- hibernate框架学习之数据查询(HQL)
lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...
- hibernate框架学习之数据查询(QBC)helloworld
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Criteria; import org.hib ...
- hibernate框架学习之数据查询(QBC)
lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...
- hibernate框架学习之数据查询(本地SQL)
本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery(&q ...
- hibernate框架学习笔记7:HQL查询、Criteria查询简介
HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...
- hibernate框架学习之增删改查helloworld
插入数据删除数据修改数据查询单条数据查询多条数据 HelloWorldApp.java package cn.itcast.h3.helloworld; import org.hibernate.Se ...
- hibernate框架学习之数据抓取(加载)策略
Hibernate获取数据方式 lHibernate提供了多种方式获取数据 •load方法获取数据 •get方法获取数据 •Query/ Criteria对象获取数据 lHibernate获取的数据分 ...
- hibernate框架学习笔记10:HQL查询详解
HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.S ...
- hibernate框架学习之数据抓取(加载)策略helloworld
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query; import org.hibern ...
随机推荐
- 7.桥接模式(Bridge Pattern)
动机(Motivate): 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化, ...
- logging 模块 与 logging 固定模块
import logging # 1. 控制日志级别# 2. 控制日志格式# 3. 控制输出的目标为文件logging.basicConfig(filename='access.log', forma ...
- C#利用Guid实现真随机数
C#中的随机数可以利用Random类很简单地生成随机数,代码如下: Random rdmNum=new Random();//生成随机数对象 int ans=rdmNum.Next(a,b);//生成 ...
- 小试XML实体注入攻击
基础知识 XML(Extensible Markup Language)被设计用来传输和存储数据.关于它的语法,本文不准备写太多,只简单介绍一下. XML基本知识 1 2 3 4 5 <?xml ...
- c# c/s 框架的分页用户控件,还有事件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
- sqlserver 数据库插入汉字变成乱码的解决方案
alter database 数据库名collate Chinese_PRC_CI_AS在英文版(或者其他版本)的数据库中插入中文会出现乱码这个就可以修改数据库排序规则.不会出现乱码了
- Linux之恢复误删的文件[针对丢弃到回收站]
1.丢弃到回收站(非RM)掉的文件一般在目录~/.local/share/Trash/files/下: 2.如何恢复呢? 原理很简单,既然它们还在,要么copy,要么移动到一个新的地方即可嘛. //以 ...
- ARM核心板_迅为4418核心板_高稳定超轻薄_研发超灵感
ARM核心板_迅为4418核心板_三星四核S5P4418处理器 4418核心板正面: 4418核心板反面:4418核心板尺寸图:详情了解:https://item.taobao.com/item.ht ...
- mysql存储过程及拼接字符串的用法
DROP PROCEDURE IF EXISTS insert_historytable;DELIMITER //CREATE PROCEDURE insert_historytable()BEGIN ...
- C++11 线程并发
并发 头文件<future> <thread> 高级接口 async().future<> future<int> result1; //int为fun ...