分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

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

发布时间:2023-09-06 01:56责任编辑:顾先生关键词: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); ???????} ???}

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

原文地址:https://www.cnblogs.com/DawnCHENXI/p/9102063.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved