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

 

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

 

 

本篇博客会讲解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);
        }

    }

 

转载于:https://www.cnblogs.com/DawnCHENXI/p/9102063.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值