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

HQL查询:

1.有关hql 查询语句中的问好参数形式,如果出现多个问号,这对后面参数就比较麻烦。

如:from Student  student where student.name = ? and student.age=?....

  对这样的赋值,容易出错

  可以采用另一种赋值的方法

如:from Student  student where student.name =:var1 and student.age=:var2....

  query.setString("var1","sisyphus");

  ...

  这样的话,即便hql的语句中顺序写反了,不影响后面参数的赋值

时间: 2024-10-08 18:09:03

Hibernate的HQL语句中定位参数和具名参数传参的相关文章

怎样在hibernate的HQL语句中使用mysql 的自定义函数?

问题:怎样在hibernate中使用mysql的函数? 1.hibernate支持原生态的sql语句查询,使用session.createSQLQuery()创建查询对象: 2.怎样在hql中使用mysql函数呢? 这时就需要重新定义hibernate的方言(dialect),将你需要用到的进行注册:  这里提到一个方言(dialect)的概念: Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以

HQL语句中数据类型转换

我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基础上开发新系统),竟然将序号字段的类型设成了varchar2,真是让人郁闷,这样的话,如果排序的话,就是对字符串排序,12是比2小的数,那么就需要转换一下类型. 以下写法调整中是错误的,不能执行,报空指针错误:select cast(t.a as Integer) from table_1 t 我也使用了这段代码,同样报空指针异常

关于在java中向带有IN的SQL语句中传参数的问题

今天遇到俩个问题: 1.在使用表格模型的时候,从数据库查询出来的数据赋值到Jtable的时候永远只显示最后一天记录,前面的都被覆盖了.一直在究其原因,未果,遂择其道而行之(第二个问题). 2.为了解决上面的问题,我将SQL语句的条件换成IN,目的想把所有参数一并传过去,查询所有记录后在一并显示到Jtable上,实验证明我的做法是对的.但是,一直没有搞懂IN(?)这个问号应该如何传值. SQL : String sql = " select sxh,grbm,xm,yybm,fyze,qzfbf,

Hibernate写hql语句与不写hql语句的区别?

写hql语句与不写hql语句的区别? 写hql语句:书写HQL语句,所有的查询与投影的设计均使用HQL语句完成. 不写hql语句:没有任何查询语句,所有的查询与投影的设计使用面向对象格式完成. 二者选用的时机: 不写hql语句,有时比较方便,在不考虑复杂的查询的情况下,可以使用,此方法把某些Hibernate的方法封装起来,不灵活. 写hql语句,复杂的业务逻辑,建议使用,灵活方便. 以下通过俩种方法的对比来着重介绍一下hibernate不写hql的一种简单用法. 写hql语句: 具有丰富的灵活

hibernate之HQL语句

1. 什么是hql HQL是Hibernate Query Language的缩写 2. hql和sql区别/异同 HQL                                          SQL 类名/属性                                     表名/列名 区分大小写,关键字不区分大小写                   不区分大小 别名                                                别名 ?,

hibernate 之 HQL语句总结【转】

1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql); List<Users> users = query.list(); for(Users user : users){ System.out.println(user.getName() + " : " + user.ge

使用HQL语句的按照参数名字查询数据库信息的时候 “=:”和参数之间不能存在空格,否则会报错

问题描述: 今天在使用HQL的按照参数的名字查询数据库信息的时候报错如下: org.hibernate.QueryException: Space is not allowed after parameter prefix ':' [from Users user where user.address=: userAddress] at org.hibernate.engine.query.spi.ParameterParser.parse(ParameterParser.java:95) at

Hibernate 的HQL语句,初级

这里讲解简单的HQL语句,因为很多比较复杂的外查询,用一般的查询很难完成 所以这里需要使用HQL @Test public void selquery(){ System.out.printf("hello"); Configuration config = new Configuration(); SessionFactory sessionfactory = config.configure("hibernate.cfg.xml").buildSessionFa

C#中可选参数和具名参数的使用

具名参数 和 可选参数 是 C# 4.0 提出来的新特性 一,可选参数分为:部分可选.全部可选 1,声明 public class Dogs { public string Name { get; set; } public string Age { get; set; } //1,name为必选参数,age为可选参数,如果有必选参数,那么可选参数必须定义在必选参数后 //可选参数之后必然为可选参数 //如果都是可选参数,那么可以放第一位 public void Says(string name