hibernate 3.x 常用查询语句
来源:互联网 发布:mac pro display 编辑:程序博客网 时间:2024/05/18 00:13
1、HQL: Hibernate查询语言
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念
大小写敏感问题:除了Java类与属性的名称外,查询语句对大小写并不敏感。 所以 SeLeCT与 sELEct以及 SELECT是相同的,但是 org.hibernate.eg.FOO并不等价于 org.hibernate.eg.Foo并且 foo.barSet也不等价于 foo.BARSET。
示例:
public void query(String name){
Session s=null;
try{
s=HibernateUtil.getSession();
String hql="from User as user where user.username=:name"; //使用命名参数,推荐使用,易读。
Query query=s.createQuery(hql);
query.setString("name", name);
//或者如下写法
String hqlstr ="from User as user where user.username=?"
Query que=s.createQuery(hqlstr);
que.setParameter("name", name);
List<Admin> list=query.list();
for(User useradmin:list){
System.out.println(user.getUsername());
}
}finally{
if(s!=null)
s.close();
}
}
2、Criteria 条件查询
示例1:普通条件语句
List cats = session.createCriteria(User.class)
.add( Restrictions.like("username", "liu%") )
.add( Restrictions.or(
Restrictions.eq( "age", new Integer(0) ),//eq是等于,gt是大于,lt是小于,or是或
Restrictions.isNull("age")
) )
.list();
等价sql语句:
select from cat t where t.name like ''liu%" and (t.age ==0 or t.age is null )
示例2:结果集排序语句
List cats = session.createCriteria(User.class)
.add( Property.forName("username").like("liu%") )
.addOrder( Property.forName("username").asc() )
.addOrder( Property.forName("age").desc() )
// .setMaxResults(50) 取出最多50条数据
.list();
3、普通sql语句查询
public List sql() {
Session s = session.getSession();
Query q = s.createSQLQuery("select * from user t where t.username='admin'").addEntity(User.class);
List<User> rs = q.list();
s.close();
return rs;
}
- hibernate 3.x 常用查询语句
- Hibernate常用查询语句(hql)
- Hibernate常用查询语句(hql)
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- Hibernate查询语句+HQL
- hibernate查询语句---HQL
- hibernate查询语句--HQL
- hibernate查询语句
- hibernate查询语句--HQL
- hibernate 查询语句
- hibernate 查询语句总结
- hibernate报表查询语句
- hibernate查询HQL语句
- hibernate--HQL查询语句
- hibernate 查询语句总结
- Hibernate查询语句
- 是否能给我的手机文件恢复回来
- Spring与RMI集成实现远程访问
- oracle 10g 导入数据指定表空间
- C/C++ 结构体的一个高级特性 ―― 指定成员的位数
- 关于v$sql_bind_capture 的问题
- hibernate 3.x 常用查询语句
- jni开发 - 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
- C++之 运算符重载
- 我的内核学习笔记3:我的platform驱动模板文件
- 年终复盘,我的2011
- 新浪微博客户端开发之adapter
- 【转载】开发者是如何提升技能水平的
- JSTL--functions及fmt函数的常用方法
- jquery的select美化