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);
} }
Hibernate-ORM:07.Hibernate中的参数绑定的更多相关文章
- MVC中Action参数绑定的过程
一.题外话 上一篇:MVC中Action的执行过程 ControllerContext 封装有了与指定的 RouteBase 和 ControllerBase 实例匹配的 HTTP 请求的信息. 二. ...
- SpringMVC中的参数绑定总结
众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...
- 【SpringMVC学习05】SpringMVC中的参数绑定总结——较乱后期准备加入 同一篇幅他人的参数绑定
众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面的几篇博文中使用的都是静态数据,为了能快速入门springmvc,在这一篇博文中,我将总结一下springm ...
- SpringMVC中的参数绑定
SpringMVC中的参数绑定 参数绑定的定义 所谓参数绑定,简单来说就是客户端发送请求,而请求中包含一些数据,那么这些数据怎么到达 Controller.从客户端请求key/value数据(比如ge ...
- SpringMvc中初始化参数绑定
初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法 使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型 proper ...
- ASP.NET Web API中的参数绑定总结
ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单 ...
- Hibernate 系列 07 - Hibernate中Java对象的三种状态
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...
- Hibernate的HQL语句中定位参数和具名参数传参
HQL查询: 1.有关hql查询语句中的问号参数形式,如果出现有多个问号,这对后面设置参数就比较麻烦. 如:from User user where user.name=? and user.age= ...
- 解决Spring Mvc中接受参数绑定重名的方法
html页面 <form method='post' action='url'> 用户名 <input type='text' name='name'> 用户id <in ...
随机推荐
- 纠结的一天 —— 由base64编解码与加号、空格引起
2014年3月14日,星期五, 23点22分 忙碌.焦头烂额.充实而又幸福的一天! 写在篇头的话: 许多时候,别人分享的经验(成功或失败),个中滋味,听者很难真正体会,直到自己遇到的那一瞬间,才会泪如 ...
- C语言 scanf函数
#include <stdio.h> void test1() { // 1.提示用户输入数据 printf("请输入一个整数:"); // 2.接收用户输入的数据 i ...
- (转)写的非常好的一篇HTTP协议详解
原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html#3931004(推荐看原文,因为原文文章末有更详细链接) 当今 ...
- 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 ...
- python:线程进阶
1,守护线程 import time from threading import Thread def func(): print('开始执行子线程') time.sleep(3) print('子线 ...
- bzoj 2179 FFT
求两个高精度的乘法. 根据高位低位,填入多项式的系数,求两个卷积,然后进位操作.
- PHP设计模式——观察者模式
PHP版本 <?php /** * 观察者模式 * 观察者模式能够便利的创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定性功能. * * 为软件添加由某个动作或状态变化激活的,但是松散 ...
- 2018.11.1 Hibernate中的Mapper关系映射文件
Customer.hbm.xml 基本的参数都在里面了 <?xml version="1.0" encoding="UTF-8"?> <!DO ...
- ImageNet Classification with Deep Convolutional Nerual Networks(AlexNet)
Architecture: 整个网络8层,5个卷积层,3个全连接层 Relu Nonlinearity: 非饱和的relu比饱和的sigmoid或者tanh训练速度快很多,并有效解决梯度消失 Over ...
- Ubuntu14.04系统下无法连接Wi-Fi无线网以及安装BCM43142网卡驱动的解决方案
1.问题描述 博主近日开始学习ROS,首先必装Linux操作系统,选择的是Ubuntu14.04,安装过程略过,直接讲问题.安装完系统之后发现一个重要问题,没法使用Wi-Fi,只能使用有线网络,而且网 ...