欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate的查询方法(2动态参数绑定查询)

程序员文章站 2022-04-15 22:13:30
...

动态参数绑定查询,即参数的值是由代码传递来的,并非在查询中就已经固定

SQL查询

(一)使用”?”占位符

  使用"?"占位符站位,setXx()进行参数绑定,setXx(int position,Object value))
  setXx():参数的类型
  position:表示第几个占位符,从开始计数.
String sql="select *from student where age>?and score<?";
List<Student> students=session.createSQLQuery(sql).addEntity(Student .class).setInteger(0,18).setDouble(1,98).list();

(二)使用别名占位

使用别名占位,setXx()进行参数绑定,setXx(String name,Object value))
别名任意名称,冒号后跟别名
String sql="select *from  student where age>:tage and score<:score";
List<Student> Student =session.createSQLQuery(sql).addEntity(Student .class).setInteger("tage",18).setDoubble("score",98).list();

(三)使用?占位符,setParamter()绑定参数

 SetParameter(int position,Object value)
 position 表示第几个占位符,从0开始计数
String sql = "select *from student where age>? and score <?";
List<Student> students = session.createSQLQuery(sql).addEntity(Student.class).setParameter(0,20).setParameter(1,98).list();

Hibernate的sql查询

在hibernate中使用动态查询,以上的方法均可成立,且用法相同
使用"?"占位符
使用"?"占位符站位,setXx()进行参数绑定,setXx(int position,Object value))
setXx():参数的类型
position:表示第几个占位符,从开始计数.
String hql="from Student where age>?and score<?";
List<Student> students=session.createSQLQuery(hql).addEntity(Student .class).setInteger(0,18).setDouble(1,98).list();