Hibernate-ORM:07.Hibernate中的参数绑定

简介: ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------     本篇博客会讲解Hibernate中的参数绑定,就是相当于sql语句中的where后面的条件   一,讲解概述:   1.

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

本篇博客会讲解Hibernate中的参数绑定,就是相当于sql语句中的where后面的条件

 

一,讲解概述

  1.通过下标的方式绑定参数

  2.通过自定义参数名的方式绑定参数(多用于多表操作)

  3.通过传入自定义对象的方式绑定参数(多用于单表操作)

  4.通过类似智能标签的方式绑定参数(多用于带条件的多表操作)

 

二,通过下标的方式绑定参数

    @Test
    /*通过下标的方式指定参数*/
    public void t01Parameterbyunderid(){
        /*模拟前台输入参数*/
        Teacher teacher=new Teacher("a",400.00);


        /*hql语句*/
        String hql="from Teacher where address=? and sal>?";
        Query query = session.createQuery(hql);
        /*赋值*/
        query.setParameter(0,teacher.getAddress());
        query.setParameter(1,teacher.getSal());
        /*查询*/
        List list = query.list();
        /*遍历*/
        for (Object t:list) {
            System.out.println(t);
        }

    }

 

三,通过自定义参数名的方式绑定参数(多用于多表操作)

    @Test
    /*通过自定义参数名的方式指定参数*/
    public void t02Parameterbymyselfkey(){
        /*模拟前台输入参数*/
        Teacher teacher=new Teacher("a",400.00);


        /*hql语句*/
        String hql="from Teacher where address=:teaAdd and sal>:teasal";
        Query query = session.createQuery(hql);
        /*赋值*/
        query.setParameter("teaAdd",teacher.getAddress());
        query.setParameter("teasal",teacher.getSal());
        /*查询*/
        List list = query.list();
        /*遍历*/
        for (Object t:list) {
            System.out.println(t);
        }

    }

 

四,通过传入自定义对象的方式绑定参数(多用于单表操作)

    @Test
    /*通过自定义对象的方式指定参数*/
    /*适合单表操作*/
    public void t03ParameterbymyselfObject(){
        /*模拟前台输入参数*/
        Teacher teacher=new Teacher("a",400.00);


        /*hql语句*/
        String hql="from Teacher where address=:address and sal>:sal";
        Query query = session.createQuery(hql);
        /*赋值*/
        query.setProperties(teacher);
        /*查询*/
        List list = query.list();
        /*遍历*/
        for (Object t:list) {
            System.out.println(t);
        }

    }

 

五,通过类似智能标签的方式绑定参数(多用于带条件的多表操作)

    @Test
    /*通过自定义参数名的方式指定动态参数*/
    /*适合多表操作*/
    public void t04ParameterbyDongtai(){
        /*模拟前台输入参数*/
        Teacher teacher=new Teacher("a",400.00);


        /*hql语句*/
        StringBuffer hql=new StringBuffer("from Teacher where 1=1 ");

        if(teacher.getAddress()!=null){
            hql.append("and address=:teaAdd ");
        }
        if(teacher.getSal()>0){
            hql.append("and sal>:teasal ");
        }

        Query query = session.createQuery(hql.toString());
        /*赋值*/
        query.setParameter("teaAdd",teacher.getAddress());
        query.setParameter("teasal",teacher.getSal());
        /*查询*/
        List list = query.list();
        /*遍历*/
        for (Object t:list) {
            System.out.println(t);
        }

    }

 

目录
相关文章
|
7月前
使用Hibernate-Validate进行参数校验
使用Hibernate-Validate进行参数校验
82 3
|
JSON Java 数据格式
hibernate-validator校验参数(统一异常处理)(下)
hibernate-validator校验参数(统一异常处理)
hibernate-validator校验参数(统一异常处理)(下)
|
Oracle Java 关系型数据库
hibernate-validator校验参数(统一异常处理)(上)
hibernate-validator校验参数(统一异常处理)
hibernate-validator校验参数(统一异常处理)(上)
|
Java 数据库连接
SpringBoot 2.0参数校验Hibernate Validator
SpringBoot 2.0参数校验Hibernate Validator
SpringBoot 2.0参数校验Hibernate Validator
Springboot使用hibernate-validator实现参数校验
Springboot使用hibernate-validator实现参数校验
264 0
Springboot使用hibernate-validator实现参数校验
|
Java 数据库连接 程序员
SpringBoot 2.0参数校验Hibernate Validator
Spring Boot (v2.0.5.RELEASE)Hibernate Validator springboot起步依赖自动添加了对hibernate validator的依赖 hibernate validator依赖 或者也可以自己手动添加依赖 org.
4315 0
|
缓存 Java 数据库连接
Hibernate-ORM:06.Hibernate中三种状态
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------       本篇博客主要叙述Hibernate中的三种状态:临时状态(瞬时状态),持久状态,游离状态 commit和flush三种状态间的使用,commit和flush的区别: save...
1143 0
|
SQL 缓存 数据库
Hibernate-ORM:05.Hibernate中的list()和iterator()
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------       Hibernate中查多条(全部)使用list()或iterator() 本篇介绍:   1.
1221 0
|
SQL Java 数据库连接
Hibernate-ORM:01.Hibernate恍如隔世般初见
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------     对于学过ORM框架的朋友来说,上手HibernateORM来说,既熟悉有有一点陌生,熟悉无非是灵魂相通,陌生的只是一些语言罢了 1.
1377 0