zoukankan      html  css  js  c++  java
  • 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);
            }
    
        }
  • 相关阅读:
    PAIRING WORKFLOW MANAGER 1.0 WITH SHAREPOINT 2013
    Education resources from Microsoft
    upgrade to sql server 2012
    ULSViewer sharepoint 2013 log viewer
    Top 10 Most Valuable Microsoft SharePoint 2010 Books
    讨论 Setsockopt选项
    使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC
    Nagle's algorithm
    Nagle算法 TCP_NODELAY和TCP_CORK
    Design issues Sending small data segments over TCP with Winsock
  • 原文地址:https://www.cnblogs.com/DawnCHENXI/p/9102063.html
Copyright © 2011-2022 走看看