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. python Bootstarp框架和inconfont、font-awesome使用

    http://www.bootcss.com/ http://www.runoob.com/bootstrap/bootstrap-panels.html  查找基本的没问题 https://www. ...

  2. Linux记录-HDFS副本机制

    1. 副本策略 NameNode具有RackAware机架感知功能,这个可以配置. 若client为DataNode节点,那存储block时,规则为:副本1,同client的节点上:副本2,不同机架节 ...

  3. rpmbuild打包php

    安装php依赖库 mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} php有一个依赖库,在yum源于epel源中都没有需要自己打包libico ...

  4. 【1】【leetcode-92】 反转链表 II

    (没过,以为简单,结构链表指针搞得很复杂出错.是有捷径的,很典型题目要记住) 反转链表 II(medium) 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明:1 ≤ m ≤ n ≤ 链 ...

  5. Shell编程(三)Shell特性

    !$:显示上一条命令最后一个参数 $?: 上个命令的退出状态,或函数的返回值. alias xxx="命令":给命令取别名 xxx 通过 vim ~/.bashrc 里编辑,可以来 ...

  6. C#中ICollection介绍

    ICollection 接口是 System.Collections 命名空间中类的基接口,ICollection 接口扩展 IEnumerable,IDictionary 和 IList 则是扩展 ...

  7. 数据建模工具系列 之 让SQL Power Architect支持Vertica

    几款数据建模软件评估 下面是流行几款数据建模软件: 软件 特点 支持Vertica? 免费? ERWin 功能强大, 操作较繁琐 不支持Vertica 商业软件,价格高 Power Designer ...

  8. 【三】Java VM 发展史

    1. Sun Classic VM  jdk1.0  第一款商用虚拟机. 只能使用纯解释器来运行Java代码.没有自己的判断,会把每一个方法每一行代码都编译,效率不好.导致大家普遍认为Java代码运行 ...

  9. Java8新特性 重复注解与类型注解

    import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.anno ...

  10. getnameinfo函数

    一.函数原型 #include <netdb.h> int getnamefo(const struct sockaddr *sockaddr, socklen_t addrlen, ch ...