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的更多相关文章

  1. hibernate框架学习之数据查询(HQL)

    lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OI ...

  2. hibernate框架学习之数据查询(QBC)helloworld

    package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Criteria; import org.hib ...

  3. hibernate框架学习之数据查询(QBC)

    lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Sessio ...

  4. hibernate框架学习之数据查询(本地SQL)

    本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery(&q ...

  5. hibernate框架学习笔记7:HQL查询、Criteria查询简介

    HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cus ...

  6. hibernate框架学习之增删改查helloworld

    插入数据删除数据修改数据查询单条数据查询多条数据 HelloWorldApp.java package cn.itcast.h3.helloworld; import org.hibernate.Se ...

  7. hibernate框架学习之数据抓取(加载)策略

    Hibernate获取数据方式 lHibernate提供了多种方式获取数据 •load方法获取数据 •get方法获取数据 •Query/ Criteria对象获取数据 lHibernate获取的数据分 ...

  8. hibernate框架学习笔记10:HQL查询详解

    HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.S ...

  9. hibernate框架学习之数据抓取(加载)策略helloworld

    package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query; import org.hibern ...

随机推荐

  1. Hadoop记录-fair公平调度队列管理

    <?xml version="1.0"?> <allocations> <queue name="root"> <qu ...

  2. Hadoop记录-Hadoop NameNode 高可用 (High Availability) 实现解析

    Hadoop NameNode 高可用 (High Availability) 实现解析   NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDF ...

  3. css 动画【转】

    css 动画 http://www.w3school.com.cn/css3/css3_animation.asp

  4. ArcGis Python脚本——根据字段内容拆分要素类(shp)为多个

    其实,这就是批量执行了ArcToolbox 分析工具-筛选 功能. 先上代码,后做解说: # in_feature:待拆分要素类 # out_folderpath:输出路径,注意最后加“/”以与字段名 ...

  5. PhotoshopCC2018安装流程以及破解

    2018版增加了不少功能,也对优化PS软件进行了不少的优化,界面更加简洁美观 这里以64位为主. 1.首先下载好PhotoshopCC安装包和破解包,分别解压 2.解压完毕后,在安装包里面双击Setu ...

  6. Ext.net 的锁定列要集中放到前面

    如题,Ext.net的锁定列要集中放在一起,不然的话,在使用排序的时候,会引起实际排序列错乱比如有A,B,C,D四列,A,C锁定,最终显示为A C | B D,这个时候如果点击B时,发现排序跑到了C上 ...

  7. Android手机有的不显示Toast

    解决办法一: 在手机中把该app的通知打开 可以直接设置通知权限:<uses-permission android:name="android.permission.RECEIVE_B ...

  8. 一次enq: TX - index contention等待事件处理

    收到告警短信: BOMC一般告警,告警2次,最后告警时间:03-03 22:21,监控对象:/XX系统/数据库/ORACLE数据库/XXX.XX.XX.XX*XXXDB_LE_DBS/ORACLE实例 ...

  9. 微信小程序开发(6) SSL证书及HTTPS服务器

    1. 域名 在万网购买,略 2. 云服务器 阿里云购买,略 3. 安装lnmp 使用lnmp.org程序,略 4. 申请证书 阿里云-管理控制台-安全(云盾)-证书服务-购买证书证书类型: 免费型DV ...

  10. PDO和MySQLi区别与选择?

    当用PHP访问数据库时,除了PHP自带的数据库驱动,我们一般还有两种比较好的选择:PDO和MySQLi.在实际开发过程中要决定选择哪一种首先要对二者有一个比较全面的了解.本文就针对他们的不同点进行分析 ...