1.条件查询
(1)拼字符串
List students=session.createQuery("select id,name from Student where name like '%1%'").list();
(2)采用占位符?
Query query=session.createQuery("select id,name from Student where name like ?");
query.setParameter(0, "%8%");
注意使用setParameter()传递参数时,索引从0开始。
当然支持方法链条编程
如下:
List students=session.createQuery("select id,name from Student where name like ?")
.setParameter(0, "%8%")
.list();
(3)采用:参数名 来传递参数
List students=session.createQuery("select id,name from Student where name like :sname")
.setParameter("sname", "%8%")
.list();
归结于setParameter()方法的重载。
(4)传递多个参数 用in
List students=session.createQuery("select id,name from Student where id in(:sids)")
.setParameterList("sids", new Object[]{1,3,5,7,9})
.list();
这样在传递参数时可以任意多个。
2.原生SQL查询
通过createSQLQuery方法,如下所示:
List students=session.createSQLQuery(sql语句).list();