Hibernate HQL查询语句Query

Hibernate系列教材 (七)- 基础 - 使用hql进行查询 anguage)是hibernate专门用于查询数据的语句,有别于SQL,HQL 更接近于面向对象的思维方式。把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。使用hql的时候,用的是类名Product,而不是表名product_比如使用的是类的名字Product,而非表格的名字product_,可以较为明显地提升学习速度,跨过学习路上的各个槛。 阅读详情

Department类

@Entity
@Table(name="t_department")
public class Department extends BaseEntity {

    String name;

    @OneToMany(mappedBy="department")
    private Set<Employee> employees;

    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }

    public Department() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Department(String name) {
        this.name = name;
    }

    public Department(int id, String name) {
        super(id);
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Department [name=" + name + "]";
    }

}

Employee 类

@Entity
@Table(name="t_employee")
public class Employee extends BaseEntity {

    private String name;
    private int age;

    @ManyToOne(cascade=CascadeType.PERSIST)
    @JoinColumn(name="depart_id")
    private Department department;


    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public Employee() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Employee(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    /*public Employee(int id, String name, int age) {
        super(id);
        this.name = name;
        this.age = age;
    }*/

    @Override
    public String toString() {
        return "Employee [id="+id+",name=" + name + ", age=" + age + "]";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

}

测试类

public class HQLDemo01 {

    public static void main(String[] args) {
        //add();

        query();

    }


    /**
     * 演示HQL的使用
     */
    private static void query() {
        Session session=HibernateUtils.getSession();

        //1.查询单个对象
        /*String hql="from Employee where id=:id";
        Query query=session.createQuery(hql);
        query.setInteger("id",1);*/
        //如果明确知道查询的结果就一个对象,可以不使用集合操作。
        /*List<Employee> employees=query.list();
        System.out.println(employees);*/

        //如果只查询一个对象,可以使用query.uniqueResult()方法,此方法必须保证返回的对象只有一个,
        //如果有多个则报异常:org.hibernate.NonUniqueResultException:
        /*Employee employee=(Employee) query.uniqueResult();
        System.out.println(employee);*/


        /*//2.查询多个对象
        String hql="from Employee";
        Query query=session.createQuery(hql);
        List<Employee> employees=query.list();
        System.out.println(employees);*/

        /*
         * 3.分页查询
         * 
         * 已知变量:
         *  当前页号pageNo=1;
         *  每页显示的记录数pageSize=3;
         *  起始索引=(pageNo-1)*pageSize
         *  结束索引=pageNo*pageSize 
         */
        /*String hql="from Employee";
        Query query=session.createQuery(hql);

        int pageNo=2;
        int pageSize=4;
        int startIndex=(pageNo-1)*pageSize;
        //设置起始索引
        query.setFirstResult(startIndex);
        //设置每页显示的记录数
        query.setMaxResults(pageSize);
        List<Employee> employees=query.list();
        System.out.println(employees);*/

        //4.对查询的数据进行排序 order by 字段名 asc|desc 
        //String hql="from Employee order by id desc";
        //String hql="from Employee order by id asc";
        /*String hql="from Employee order by id";//如果不指定,则默认是升序排序,即asc可以省略
        Query query=session.createQuery(hql);
        List<Employee> employees=query.list();
        System.out.println(employees);*/

        //5.对查询的数据进行分组
        /*String hql="select e.age,count(*) from Employee e group by age having count(*)>2";//如果不指定,则默认是升序排序,即asc可以省略
        Query query=session.createQuery(hql);
        List<Object[]> employees=query.list();
        for(Object[] objs :employees){
            System.out.println(Arrays.toString(objs));
        }*/

        //6.聚合函数:count(*),sum(字段),avg(字段名),max(字段),min(字段)
        /*String hql="select count(*) from Employee";
        Query query=session.createQuery(hql);
        long count=(long) query.uniqueResult();
        System.out.println("count="+count);*/

        /*String hql="select sum(age) from Employee";
        Query query=session.createQuery(hql);
        long sum=(long) query.uniqueResult();
        System.out.println("sum="+sum);*/

        /*String hql="select avg(age) from Employee";
        Query query=session.createQuery(hql);
        double avg=(double) query.uniqueResult();
        System.out.println("avg="+avg);*/

        /*String hql="select max(age) from Employee";
        Query query=session.createQuery(hql);
        int max=(int) query.uniqueResult();
        System.out.println("max="+max);*/

        /*String hql="select min(age) from Employee";
        Query query=session.createQuery(hql);
        int min=(int) query.uniqueResult();
        System.out.println("min="+min);*/

        /*String hql="select avg(age) from Employee";
        Query query=session.createQuery(hql);
        Object obj=(Object) query.uniqueResult();
        System.out.println("obj="+obj);*/

        /*//7.查询单个属性
        String hql="select name from Employee";
        Query query=session.createQuery(hql);
        List<Object> list=query.list();
        System.out.println("list="+list);*/

        //8.查询多个属性 
        //A:使用对象数组接收查询到的数据
        /*String hql="select id,name,age from Employee";
        Query query=session.createQuery(hql);
        List<Object[]> list=query.list();
        for(Object[] objs:list){
            System.out.println("objs="+Arrays.toString(objs));
        }
        */

        //B:使用List集合接收多个属性的值
        /*String hql="select new List(id,name,age) from Employee";
        Query query=session.createQuery(hql);
        List<List<Object>> list=query.list();
        for(List<Object> objs:list){
            System.out.println(objs);
        }*/

        //C:使用Map接收多个属性的值,此时建议一定要给查询的列起别名,否则键就是从0开始依次递增的数字作为key
        /*String hql="select new Map(id as id,name as name,age as age) from Employee";
        Query query=session.createQuery(hql);
        List<Map<String,Object>> list=query.list();
        for(Map<String,Object> objs:list){
            System.out.println(objs);
        }*/

        //D:使用对象接收
        //String hql="select new Employee(id,name,age) from Employee";
        //String hql="select e from Employee e";
        /*String hql="select new Employee(name,age) from Employee";
        Query query=session.createQuery(hql);
        List<Employee> list=query.list();
        for(Employee e:list){
            System.out.println(e);
        }*/

        //9.关联查询
        //String hql="select e.name,d.name from Employee e inner join Department d";//错误写法
        /*String hql="select e.name,d.name from Employee e inner join e.department d";//正确写法
        Query query=session.createQuery(hql);
        List<Object[]> list=query.list();
        for(Object[] objs:list){
            System.out.println(Arrays.toString(objs));
        }*/

        //String hql="select new Map(e.name as empName,d.name as deptName) from Employee e inner join e.department d";//正确写法
        //String hql="select new Map(e.name as empName,d.name as deptName) from Employee e left join e.department d";//正确写法
        /*String hql="select new Map(e.name as empName,d.name as deptName) from Employee e right join e.department d";//正确写法
        //String hql="select new Map(e.name as empName,d.name as deptName) from Employee e full join e.department d";//mysql5.x不支持全连接
        Query query=session.createQuery(hql);
        List<Map<String,Object>> list=query.list();
        for(Map<String,Object> map:list){
            System.out.println(map);
        }*/



        System.out.println("=======================");


        //使用hql做增删改操作必须显示启动事务和提交事务,否则操作失败
        //A:做插入操作,需要注意:目前hql不支持insert into 表(字段列表) values  (值列表)
        /*String hql="insert into Employee values(null,?,?)";
        Query query=session.createQuery(hql);
        query.setString(0,"小梦");
        query.setInteger(1,18);*/

        //类上sql:insert into t_employee(name,age,depart_id) select name,age,depart_id from  t_employee;
        //B:但hql支持insert into .... select 形式的插入

        /*Transaction transaction=session.beginTransaction();
        String hql="insert into Employee(name,age) select name,age from Employee";
        Query query=session.createQuery(hql);
        //返回受影响的行数
        int count=query.executeUpdate();
        System.out.println("count="+count);
        transaction.commit();
        */

        //C:修改操作
        /*Transaction transaction=session.beginTransaction();
        String hql="update Employee set name=:name,age=:age where id=:id";
        Query query=session.createQuery(hql);
        query.setString("name","小龙女");
        query.setInteger("age", 24);
        query.setInteger("id", 55);
        //返回受影响的行数
        int count=query.executeUpdate();
        System.out.println("count="+count);
        transaction.commit();*/

        //D:删除操作
        Transaction transaction=session.beginTransaction();
        String hql="delete from  Employee where id in (52,53,54,55)";
        Query query=session.createQuery(hql);
        //返回受影响的行数
        int count=query.executeUpdate();
        System.out.println("count="+count);
        transaction.commit();




    }


    private static void add() {
        Session session=HibernateUtils.getSession();

        try{
            Transaction transaction=session.beginTransaction();


            Employee e1=new Employee("小丽", 20);
            Department d1=new Department("教学部");
            e1.setDepartment(d1);
            session.persist(e1);

            Employee e2=new Employee("小龙", 20);
            e2.setDepartment(d1);
            session.persist(e2);

            Employee e3=new Employee("赵丽颖", 18);
            Department d2=new Department("影视部");
            e3.setDepartment(d2);
            session.persist(e3);

            Employee e4=new Employee("宇文玥", 18);
            e4.setDepartment(d2);
            session.persist(e4);


            Employee e5=new Employee("宇文坏", 18);
            session.persist(e5);

            Employee e6=new Employee(null, 18);
            session.persist(e6);


            Department d3=new Department("市场部");
            session.persist(d3);

            Department d4=new Department(null);
            session.persist(d4);


            transaction.commit();
        }finally{
            HibernateUtils.close(session);
        }
    }

}

以下只有查询语句而无实体类

    /*//1.查询所有
        String hql="from Student";
        Query query=session.createQuery(hql);
        List<Student> students=query.list();
        System.out.println(students);*/

        //2.根据where条件查询
        /*String hql="from Student where name like ? and age>?";
        Query query=session.createQuery(hql);
        String condition="晓";
        query.setString(0, "%"+condition+"%");
        query.setInteger(1, 20);
        List<Student> students=query.list();
        System.out.println(students);*/

        //3.查询所有实体
        //String hql="from com.hsj.domain.BaseEntity";
        /*String hql="select id from com.hsj.domain.BaseEntity";
        Query query=session.createQuery(hql);
        List<Object> ids=query.list();
        System.out.println(ids);*/

        /*String hql="select id,name from com.hsj.domain.BaseEntity";
        Query query=session.createQuery(hql);
        List<Object[]> list=query.list();
        for(Object[] objs:list){
            System.out.println(Arrays.toString(objs));
        }*/


        //当前数据库中所有注册过的实体对象对应的数据
        String hql="from java.lang.Object";
        Query query=session.createQuery(hql);
        List<Object> list=query.list();
        for(Object obj:list){
            System.out.println(obj);
        }
    //使用as 和where 关键字
        //String hql="select s from Student as s  where s.name like '%晓%'";

        //String hql="select s from Student as s  where s.name ='童薇学生'";
        //String hql="select s from Student as s  where s.name !='童薇学生'";
        //String hql="select s from Student as s  where s.name <>'童薇学生'";
        //String hql="select s from Student as s  where s.age >22";
        //String hql="select s from Student as s  where s.age <22";

        //between min and max:包括min和max的
        //String hql="select s from Student as s  where s.age between 22 and 25";
        //String hql="select s from Student as s  where s.age  not between 22 and 25";
        //String hql="select s from Student as s  where s.age in (20,22)";
        //String hql="select s from Student as s  where s.age not in (20,22)";

        //String hql="select s from Student as s  where s.email = null";//hql特有的写法,sql中这样写错误
        //String hql="select s from Student as s  where s.email is null";//正确的写法

        //String hql="select s from Student as s  where s.email != null";//hql特有的写法,sql中这样写错误
        //String hql="select s from Student as s  where s.email <> null";//hql特有的写法,sql中这样写错误

        //is not null是判断不为null的,但没有not is null的写法。
        //String hql="select s from Student as s  where s.email not is  null";//错误的写法
        String hql="select s from Student as s  where s.email is not null";//正确的写法
        Query query=session.createQuery(hql);
        List<Student> list=query.list();
        for(Student stu:list){
            System.out.println(stu);
        }
/*String hql="select new Student(name,sex,age,email)  from Student";
        Query query=session.createQuery(hql);
        List<Student> students= query.list();
        for(Student student:students){
            System.out.println(student);
        }*/

        /*//String hql="select upper(email)  from Student";
        //String hql="select lower(upper(email))  from Student";
        //String hql="select lower(upper(email))  from Student";
        String hql="select distinct email  from Student";
        Query query=session.createQuery(hql);
        List<Object> list= query.list();
        for(Object obj:list){
            System.out.println(obj);
        }*/


        /*String hql="select new List(name,age,sex)  from Student";
        Query query=session.createQuery(hql);
        List<List<Object>> list= query.list();
        for(List<Object> obj:list){
            System.out.println(obj);
        }*/

        /*//使用Map时必须给查询的列起别名,如果不起别名则使用索引值从0开始作为键,但如果其别名必须是as关键字
        String hql="select new Map(name as 姓名,age as 年龄,sex  as 性别)  from Student";
        Query query=session.createQuery(hql);
        List<Map<String,Object>> list= query.list();
        for(Map<String,Object> map:list){
            System.out.println(map);
        }*/

/*//做增删改操作必须启动事务并提交,否则无效
Transaction transaction=session.beginTransaction();
//hql语句不支持insert …. value…形式的语句,但支持insert into …. select …..
//String hql=”insert into Student(id,name,sex,age,email) values (null,’玲玲’,’女’,20,’hsj@63.com’,1)”;

    //insert into 表名(字段列表) select 字段列表 from 表名  where 条件
    //String hql="insert into  Student(name,sex,age,email) select name,sex,age,email from Student";
    Query query=session.createQuery(hql);
    //返回本次操作受影响的行数
    int count=query.executeUpdate();
    System.out.println("count="+count);
    transaction.commit();*/
【转载】参数估计(Parameter Estimation):频率学派(最大似然估计MLE、最大后验估计MAP)与贝叶斯学派(贝叶斯估计BPE) 基础 频率学派与贝叶斯学派 http://www.douban.com/group/topic/16719644/ http://www.zhihu.com/question/20587681 最大似然估计(Maximum likelihood estimation,MLE) http://baike.baidu.com/view/1918804.htm http://baike.baidu.co 阅读详情

相关推荐

Dify 进阶指南 | 5步打造智能JSON转换器(Excel数据预处理神器)

本文详细介绍了如何利用Dify平台的Chatflow功能,通过5个步骤构建一个智能JSON转换器,专门用于Excel数据预处理。该工具能够根据用户指令自动解析Excel表格,执行数据清洗、聚合计算,并精准输出定制化的JSON格式,极大提升前端开发、数据分析与测试工作的效率。

weixin_28520495的博客 573

Hibernate原生SQL查询

Hibernate除了支持HQL查询外,还支持原生SQL查询。          对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。          执行SQL查询步骤如下:          1、获取Hibernate Session对象          2、编写SQL语句

小菜鸟的博客 4万+

避坑指南:SAP STO订单里‘发货存储地点’栏位不显示?检查这个关键配置

本文深入解析SAP STO订单中‘发货存储地点’栏位缺失问题的根本原因及解决方案。通过激活库存地点间转储功能、维护库存地点主数据等关键配置步骤,帮助用户快速恢复业务操作。特别适用于MM模块实施顾问和SAP系统管理员处理UB STO相关技术问题。

weixin_30632089的博客 98

Hibernate查询的方法

Hibernate查询的方法 一:hibernate多记录查询 1、原生SQL(Native SQL)查询 2、QBC查询 3、HQL查询 1、原生SQL(Native SQL)查询 session并没有提供直接查询多条记录的方法,但提供了间接查找多条记录的对象 通过session.createNativeQuery()获得query对象,该对象可以执行sql语句完成查询操作 ...

qq_45429856的博客 960

深入浅出:UE4类型系统完整构建过程详解

UE4的类型系统是一个复杂但设计精巧的架构,它通过静态代码生成和运行时构建的完美配合,实现了强大的反射功能。理解这个过程不仅有助于解决开发中的问题,也能让你更好地利用UE4的各种高级特性。就像建造一栋大楼需要经过设计、备料、框架、装修、验收等多个阶段,UE4类型系统的构建也是一个多阶段、精细化的过程。每个阶段都有其特定的职责,共同协作完成从源代码到运行时对象的转换。

m0_45371381的博客 911

ros2 humble中使用realsense t265与d435

前提,安装realsense SDK 2.51.1版本并且能成功启动realsense-viewer V2.51.1想要在ros2中使用realsense t265,必须配合realsense SDK v2.51.1使用realsense-ros 4.51.1版本,因为新版本realsense ros2不再对t265支持下面记录源码编译安装 realsense-ros 4.51.1版本。

m0_72797388的博客 951

HQL Query查询

对于我们学习的HQL,我大概理解为就是一种查询的语言,它没有增加、删除、修改的作用,而对我们用来查询的操作,感觉用起来就是很简便,代码很少,很好理解一些。下面是我通过学习和搜索对HQL的一些简单认识和总结。 一、对HQL的一些基本任何是了解: 1、  HQL(Hibernate Query Language):面向对象的查询语句,与SQL不同,HQL中的对象名是区分大小写的(除了Java类和属

*~~~~~向日葵、的眼里只有【太阳】 3709

【QT】基于QSerialPort的跨平台串口通信实战指南

本文是一份基于Qt QSerialPort模块的跨平台串口通信实战指南。详细介绍了从硬件基础、QSerialPort核心类使用、参数配置、设备自动发现到数据异步读写和错误处理的完整流程,并通过构建一个功能齐全的串口调试助手实例,帮助开发者快速掌握在Windows、Linux和macOS系统下进行高效、稳定的串口应用开发。

a1b2c3d的博客 981

createQuery与createSQLQuery区别、hibernate分页

1、hibernate联合查询:from UQuestion q left join UAnswer a on q.id=a.questionId where q.parentQuestion is null报错:outer or full join must be followed by path expression 大家说hql不支持 inner join 连接和on。于是将查询语句改为

u014369382的专栏 605

自组织映射神经网络(SOM)

目录 1 背景:自组织(竞争型)神经网络 2竞争学习的概念与原理 2.1 竞争学习的步骤 2.2 示例 3SOM典型结构 4SOM网的权值调整域 5 SOM Kohonen 学习算法 6 SOM示例 7SOM设计细节 7.1输出层设计 7.2输出层节点排列的设计 7.3 权值初始化问题 7.4学习率的设计 7.5设计拓扑领域 8SOM功能分析 8.1 保序映射 8.2数据压缩 8.3 特征提取 9自组织映射神经网络与K均值算法的区别...

weixin_39910711的博客 1万+

从稳压管到LDO芯片:一张图看懂线性电源的‘内卷’进化史

本文追溯了从稳压管到LDO芯片的线性电源技术进化历程,详细解析了各阶段的技术突破与局限。重点探讨了现代LDO在超低功耗、高精度控制等方面的创新,并提供了实战选型的黄金法则,帮助工程师在电子设备小型化与低功耗化趋势中做出最优选择。

weixin_42525551的博客 204

hibernate入门(三)——HQL查询(Query)

HQL(Hibernate Query Language)是完全面对对象的查询语句,查询功能强大,具备继承、多态和关联等特性。 Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL语句。 hibernate5中 org.hibernate.Query 被 org.hibernate.query.Query 替代。 在包orm.te...

R15的博客 1万+

基于MATLAB的PDT DMR物理层仿真

PDT DMR物理层仿真的目标是评估系统的误码率(Bit Error Rate,BER),以及验证和优化各种调制方案、编码方案和信道模型。下面将介绍如何进行PDT DMR物理层的仿真,并提供相应的MATLAB源代码。通过上述步骤,我们可以进行基于MATLAB的PDT DMR物理层仿真,并评估系统的性能。根据实际需求,我们可以修改仿真参数和添加更复杂的信道模型,以更全面地评估系统性能。最后,我们可以将仿真结果进行可视化和分析。首先,我们需要设置仿真的参数,包括调制方案、编码方案、信道模型和信噪比等。

TechPulseZ的博客 457

Hibernate学习笔记三(HQL查询)

HQL语句 在Hibernate中,虽然简单的主键查询语句我们可以直接使用API让Hibernate帮我们生成,但是复杂的查询语句就需要我们自己手写,Hibernate就提供了一种HQL语句给我们使用,HQL是Hibernate Query Language的缩写,HQL是一种比较接近SQL的语句,只不过我们查询的对象不再是数据库的表,而是持久化类。 全查语句 /** * 全查操作...

水中无名鱼的博客 434

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【知识整理】Hibernate的HQL检索方式使用入门

一.HQL的检索方式:HQL是面向对象的查询语言,它和SQL语句有些相似,在Hibernate提供的检索方式中,HQL是使用最广的一种。 二.使用步骤: 1.通过Session的createQuery()方法创建一个Query对象,它包括一个HQL查询语句,HQL查询语句中可以包含命名参数。   (1)按参数位置方式代码demo: String hql = "from Employee e

qq_19891827的博客 696

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Hibernate学习之HQL详解1

Hibernate具有三种查询方式: HQL(Hibernate Query Language)检索 QBC(Query By Criteria)检索 Native SQL检索 以上三种查询方式都是通过Session对象 来操作的 HQL查询: 是完全面向对象的查询语句,查询功能非常强大,具备继承、多态和关联等特性 。 Hibernate使用Query接口来执行HQL语句,类似j

yjw916622874的专栏 927

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Hibernate条件查询之HQL和QBC

一、HQL查询 HQL(Hibernate Query Language)是一种面向对象的查询语言,依赖于Query类,每个Query实例对应一个查询对象。查询步骤如下: 1)获取Hibernate Session对象 2)编写HQL语句 3)以HQL语句作为参数,调用session的createQuery()方法创建查询条件 4)如果HQL语句包含参数,则调用Query的setXxx(...

pycharm_u的博客 326

Hibernate(五)HQL语句

HQL语句是hibernate中的一个重要知识,今天我们来看看HQL语句吧,下面有三个类图,我们就以这三个类为例讲解HQL语句吧。          既然我们现在已经学习了两种配置hibernate的方式(XML和annotation),下面我们就使用这两种方式来配置出两个项目来讲解HQL(hibernate中的XML和annotation配置后的

ErvinBao的博客 901

HQL语句相关

HQL语句相关的点滴知识 1,HQL是在 hibernate 中使用的数据库查询语言,类似SQL SERVER中的SQL语言, 2,HQL区分大小写; 3,HQL中所有的都是用对象来操作,没有用表名,如HQL中输入的 from 实体名, 4, HQL语句,“from 实体名” 对应SQL中的 “select * from 表名” 5,HQL语句,“from 实体名 别名

shenzhenNBA的专栏 2597

Hibernate Hql查询方法

HQL(hibernate query language)是Hibernate中特有的查询语句,与SQL的基本语法类似,主要区别在于:(1)HQL查询时可以省略select;(2)HQL查询对象及对象属性,而SQL查询数据表和表中的列;(3)HQL中关键字不区分大小写,但对象名和属性区分大小写。 一、基本查询过程。Hibernate3.x之后,都使用Query接口执行HQL查询。这一基本过程为:

grayqian的专栏 617

通过velocity模板和Hibernate sql-query的实现动态hql

在开发的时候,很多时候都遇到过需要动态拼写SQL,有的是在配置文件中写SQL,有的是在Java代码中拼写SQL,以配置文件拼SQL的可以拿IBatis为代表,但是很多时候是使用Hibernate的,这个时候就想要是Hibernate能像IBatis那样写就好了。 原创不易,转载请注明出处:通过velocity模板和Hibernate sql-query的实现动态hql 代码下载:http:/...

云淡风轻、仅此一抹 266

HQL经典语句

<br />转载于:http://hi.baidu.com/tuqiangkk/blog/item/eb16c7cd10db1a520eb34526.html<br /> <br />HQL经典语句 <br /><br />Hib的检索方式<br />1'导航对象图检索方式。通过已经加载的对象,调用.iterator()方法可以得到order对象<br />如果是首次执行此方法,Hib会从数据库加载关联的order对象,否则就从缓存中得到。<br />2'OID检索方式。通过session的get,load

zgmzyr的专栏 770

web进修之—Hibernate HQL(7)

概述 HQL是Hibernate封装成为面向对象的数据库查询语言,具有如下特点: 面向对象,包括继承、多态和关联之类的概念,SQL操作的数据库的表,HQL更像是操作对象 大小写敏感,只对对象和属性敏感,关键字不区分大小写,区别于SQL 简单查询语句 在看完HQL的特点之后,相信大家对于HQL的掌握有一定想法,我觉得就是使用面向对象的思维结合SQL的语法来学习HQL是比较快速且便于理解的。 现

lack的专栏 206

Hibernate HQL语句的参数设置

 List lst = new ArrayList(); lst.add(14); lst.add(15); lst.add(17); String hql = "from Students s where s.SId in (:lst)"; Query q = session.createQuery(hql); q.setParameterList("lst",lst); //

朝军的博客 681

Query

Query可以透過org.hibernate.Query介面的實例來進行查詢,透過Query介面,您可以先設定查詢參數,之後透過setXXX()等方法,將指定的參數值填入,而不用每次都撰寫完整的HQL,直接來看個例子: Session session = sessionFactory.openSession();Query query = session.createQuery("se

summer的专栏 607

【HIBERNATE框架开发之八】HIBERNATE 查询语言QUERY LANGUAGE(HQL)

本站文章均为李华明Himi原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接:http://www.himigame.com/hibernate/824.html 生成一条HQL查询语句 Query, 使用Session的createQuery(“hql语句”)生成Query HQL语句: 1. “from c...

weixin_34366546的博客 117
上一篇: Hibernate 二级缓存
下一篇: Hibernate Criteria查询
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值