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

本篇博客会讲解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中的参数绑定的更多相关文章

  1. MVC中Action参数绑定的过程

    一.题外话 上一篇:MVC中Action的执行过程 ControllerContext 封装有了与指定的 RouteBase 和 ControllerBase 实例匹配的 HTTP 请求的信息. 二. ...

  2. SpringMVC中的参数绑定总结

    众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...

  3. 【SpringMVC学习05】SpringMVC中的参数绑定总结——较乱后期准备加入 同一篇幅他人的参数绑定

    众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...

  4. SpringMVC中的参数绑定

    SpringMVC中的参数绑定 参数绑定的定义 所谓参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller.从客户端请求key/value数据(比如ge ...

  5. SpringMvc中初始化参数绑定

    初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法  使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型   proper ...

  6. ASP.NET Web API中的参数绑定总结

    ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单 ...

  7. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

  8. Hibernate的HQL语句中定位参数和具名参数传参

    HQL查询: 1.有关hql查询语句中的问号参数形式,如果出现有多个问号,这对后面设置参数就比较麻烦. 如:from User user where user.name=? and user.age= ...

  9. 解决Spring Mvc中接受参数绑定重名的方法

    html页面 <form method='post' action='url'> 用户名 <input type='text' name='name'> 用户id <in ...

随机推荐

  1. 纠结的一天 —— 由base64编解码与加号、空格引起

    2014年3月14日,星期五, 23点22分 忙碌.焦头烂额.充实而又幸福的一天! 写在篇头的话: 许多时候,别人分享的经验(成功或失败),个中滋味,听者很难真正体会,直到自己遇到的那一瞬间,才会泪如 ...

  2. C语言 scanf函数

    #include <stdio.h> void test1() { // 1.提示用户输入数据 printf("请输入一个整数:"); // 2.接收用户输入的数据 i ...

  3. (转)写的非常好的一篇HTTP协议详解

    原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html#3931004(推荐看原文,因为原文文章末有更详细链接) 当今 ...

  4. codeforces 609E Minimum spanning tree for each edge

    E. Minimum spanning tree for each edge time limit per test 2 seconds memory limit per test 256 megab ...

  5. python:线程进阶

    1,守护线程 import time from threading import Thread def func(): print('开始执行子线程') time.sleep(3) print('子线 ...

  6. bzoj 2179 FFT

    求两个高精度的乘法. 根据高位低位,填入多项式的系数,求两个卷积,然后进位操作.

  7. PHP设计模式——观察者模式

    PHP版本 <?php /** * 观察者模式 * 观察者模式能够便利的创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定性功能. * * 为软件添加由某个动作或状态变化激活的,但是松散 ...

  8. 2018.11.1 Hibernate中的Mapper关系映射文件

    Customer.hbm.xml 基本的参数都在里面了 <?xml version="1.0" encoding="UTF-8"?> <!DO ...

  9. ImageNet Classification with Deep Convolutional Nerual Networks(AlexNet)

    Architecture: 整个网络8层,5个卷积层,3个全连接层 Relu Nonlinearity: 非饱和的relu比饱和的sigmoid或者tanh训练速度快很多,并有效解决梯度消失 Over ...

  10. Ubuntu14.04系统下无法连接Wi-Fi无线网以及安装BCM43142网卡驱动的解决方案

    1.问题描述 博主近日开始学习ROS,首先必装Linux操作系统,选择的是Ubuntu14.04,安装过程略过,直接讲问题.安装完系统之后发现一个重要问题,没法使用Wi-Fi,只能使用有线网络,而且网 ...