当前位置: 首页 > news >正文

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);
        }

    }

 

相关文章:

  • 老男孩教育每日一题-第96天-网站并发知识点:pv-并发与架构设计基础知识
  • Notepad++ 添加MarkdownViewerPlusPlus插件
  • ORACLE查询树型关系start with connect by prior
  • CentOS7安装Python3
  • 漂亮的css
  • 文件操作
  • fetch 从初识到应用
  • oreo自适应图标
  • 容器服务--如何在阿里云容器服务上运行基于TensorFlow的Alexnet
  • centos6.x完全禁用IPv6的方法
  • 细说地方门户网站运营的六大经验
  • 列表常用方法
  • 点击按钮,删除数组-对象中的数据
  • 【Spark】RDD操作具体解释4——Action算子
  • DevOps、敏捷开发、云计算,三剑客的小时代
  • 分享一款快速APP功能测试工具
  • 《网管员必读——网络组建》(第2版)电子课件下载
  •  D - 粉碎叛乱F - 其他起义
  • Fundebug计费标准解释:事件数是如何定义的?
  • iOS 系统授权开发
  • WebSocket使用
  • 记一次删除Git记录中的大文件的过程
  • 区块链将重新定义世界
  • 设计模式(12)迭代器模式(讲解+应用)
  • 温故知新之javascript面向对象
  • 学习使用ExpressJS 4.0中的新Router
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 阿里云ACE认证之理解CDN技术
  • 第二十章:异步和文件I/O.(二十三)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (1)SpringCloud 整合Python
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (20050108)又读《平凡的世界》
  • (java)关于Thread的挂起和恢复
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (过滤器)Filter和(监听器)listener
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)linux文件内容查看
  • (转)母版页和相对路径
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net FrameWork简介,数组,枚举
  • .NET 使用 XPath 来读写 XML 文件
  • .NET导入Excel数据
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [ 手记 ] 关于tomcat开机启动设置问题
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [1525]字符统计2 (哈希)SDUT