HQL的使用整理
来源:互联网 发布:彩虹六号围攻优化 编辑:程序博客网 时间:2024/06/05 10:48
条件查询
1.拼字符串
where条件后面,可以用字符串连接组成条件
String hql = " select s.id, s.name from Student s where s.name like '%1%'";
Query query = session.createQuery(hql);
List list = query.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
2.可以采用 ?来传递参数(索引从0开始)
(1)分开设值
//条件查询,参数索引值从0开始,索引位置。通过setString,setParameter设置参数String hql = "from Users where name=? and passwd=?";
Query query = session.createQuery(hql);
//第1种方式
//query.setString(0, "name1");
//query.setString(1, "password1");
//第2种方式
query.setParameter(0, "name1",Hibernate.STRING);
query.setParameter(1, "password1",Hibernate.STRING);
List<Users> list = query.list();
for(Users users : list){
System.out.println(users.getId());
}
(2)方法链
List students = session.createQuery("select s.id, s.name from Student s
where s.name like ?")
.setParameter(0, "%1%")
.list();
for(Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
3.使用 :参数名称的方式传递参数值
//条件查询,自定义索引名(参数名):username,:password.通过
//setString,setParameter设置参数
String hql = "from Users where name=:username and passwd=:password";
Query query = session.createQuery(hql);
//第1种方式
//query.setString("username", "name1");
//query.setString("password", "password1");
//第2种方式,第3个参数确定类型
query.setParameter("username", "name1",Hibernate.STRING);
query.setParameter("password", "password1",Hibernate.STRING);
//第3种方式
//query = query.setParameter("username", "name1").setParameter
//("password", "password1");
List<Users> list = query.list();
for(Users users : list){
System.out.println(users.getId());
}
4.支持谓词in,需要使用setParameterList进行参数传递
List students = session.createQuery("select s.id, s.name from Student s
where s.id in(:myids)")
.setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
5.在HQL中使用数据库的函数
List students = session.createQuery("select s.id, s.name from Student s
where date_format(s.createTime, '%Y-%m')=?")
.setParameter(0, "2010-12")
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
6.查询时间段的数据
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List students = session.createQuery("select s.id, s.name from Student s
where s.createTime between ? and ?")
.setParameter(0, sdf.parse("2010-12-01 00:00:00"))
.setParameter(1, sdf.parse("2010-12-31 23:59:59"))
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
1.拼字符串
where条件后面,可以用字符串连接组成条件
String hql = " select s.id, s.name from Student s where s.name like '%1%'";
Query query = session.createQuery(hql);
List list = query.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
2.可以采用 ?来传递参数(索引从0开始)
(1)分开设值
//条件查询,参数索引值从0开始,索引位置。通过setString,setParameter设置参数String hql = "from Users where name=? and passwd=?";
Query query = session.createQuery(hql);
//第1种方式
//query.setString(0, "name1");
//query.setString(1, "password1");
//第2种方式
query.setParameter(0, "name1",Hibernate.STRING);
query.setParameter(1, "password1",Hibernate.STRING);
List<Users> list = query.list();
for(Users users : list){
System.out.println(users.getId());
}
(2)方法链
List students = session.createQuery("select s.id, s.name from Student s
where s.name like ?")
.setParameter(0, "%1%")
.list();
for(Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
3.使用 :参数名称的方式传递参数值
//条件查询,自定义索引名(参数名):username,:password.通过
//setString,setParameter设置参数
String hql = "from Users where name=:username and passwd=:password";
Query query = session.createQuery(hql);
//第1种方式
//query.setString("username", "name1");
//query.setString("password", "password1");
//第2种方式,第3个参数确定类型
query.setParameter("username", "name1",Hibernate.STRING);
query.setParameter("password", "password1",Hibernate.STRING);
//第3种方式
//query = query.setParameter("username", "name1").setParameter
//("password", "password1");
List<Users> list = query.list();
for(Users users : list){
System.out.println(users.getId());
}
4.支持谓词in,需要使用setParameterList进行参数传递
List students = session.createQuery("select s.id, s.name from Student s
where s.id in(:myids)")
.setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
5.在HQL中使用数据库的函数
List students = session.createQuery("select s.id, s.name from Student s
where date_format(s.createTime, '%Y-%m')=?")
.setParameter(0, "2010-12")
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
6.查询时间段的数据
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List students = session.createQuery("select s.id, s.name from Student s
where s.createTime between ? and ?")
.setParameter(0, sdf.parse("2010-12-01 00:00:00"))
.setParameter(1, sdf.parse("2010-12-31 23:59:59"))
.list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
- HQL的使用整理
- 【知识整理】Hibernate的HQL检索方式使用入门
- 整理笔记---基础的HQL
- hql查询的使用:
- HQL的简单使用
- HQL查询的使用
- Hibernate HQL的使用
- HQL的使用总结
- HQL的使用
- Hibernate的hql常用语句整理汇总
- HQL的使用-part1 入门
- HQL的语法和使用
- HQL聚合函数的使用
- HQL的使用-part2 hql的查询(1)
- HQL的使用-part2 hql的查询(2)
- HQL的使用-part2 hql的查询(3)
- HQL的使用-part2 hql的查询(4)
- HQL:使用面向对象的HQL查询语言
- socket 五种模型理解之三---------重叠I/O模型(1.事件通知形式)
- 使用AngularJS开发中的几个问题
- QT 利用QSplitter 分割区域, 并添加QScrollArea 滚动区域,滚动条
- Android上传文件到服务器(1)
- 修改Linux命令提示符
- HQL的使用整理
- LeetCode-Recover Binary Search Tree
- nyoj-14-会场安排问题
- cocos2d-x 多层背景滚动效果
- UIActionsheet 自带遮罩效果
- DataLib.PRG -- VFP 数据基础函数库
- C# String.Format 数字格式化输出
- android中图片的一些操作小片段代码
- http状态码