1. HQL查简单询语句用法Query
//如果查找具体的一个或两个数据(不是全部数据)就要在HQL语句中加SELECT如果是全部查询就省略了直接FROM开头
和SQL语句一样
hql =" FROM Person p WHERE p.age/3 =10 "
hql =" FROM Person p WHERE( p.age>10) and(p.name =’lxh’) "
hql =" FROM Person p WHERE p.name is not null "
hql =" FROM Person p WHERE p.age between 20 and 30 "
hql =" FROM Person p WHERE p.name in (‘lch’,’ldf’) "
hql =" FROM Person p WHERE( p.age>10) and(p.name =’lxh’) "
hql =" FROM Person p WHERE p.name like ‘l%’ "
排列
hql =" FROM Person p order by p.age "
hql =" FROM Person p order by p.age desc "降序排列
hql =" FROM Person p order by p.age desc ,p.name "先按降序再按升序排列
分组
hql =" SELECT p.sex,avg(p.age) FROM Person p group by p.sex "
hql =" SELECT p.sex,avg(p.age) FROM Person p group by p.sex having avg(p.age) >20 "
更新 ,删除
Update User set name =’lxh’ where name =’lll’
hql =" Delete Person WHERE name = ‘lxh’ "
hql =" FROM Person p WHERE p.name like ‘l%’ "
hql =" FROM Person p WHERE p.name like ‘l%’ "
分页输出
//分页输出(从输出数据中找中间一个区间的一段输出)
Configuration conf = new Configuration().configure();
SessionFactory factory = conf.buildSessionFactory();
Session session = factory.openSession();
Person u = null;
//通过Query接口全部查询
List ll =null;
String hql2 ="FROM Person as p";
Query qq = session.createQuery(hql2);
qq.setFirstResult(0);//从第一条数据开始
qq.setMaxResults(2); //输出两条数据
ll = qq.list();
//固定模式输出
Iterator iter1 =ll.iterator();
while(iter1.hasNext()){
u = (Person)iter1.next();
System.out.println(u.getName());
例子
Session session = new Configuration().configure().buildSessionFactory().openSession();
Criteria cri = session.createCriteria(Person.class);
//String hql ="SELECT distinct p.sex FROM Person AS p ";
String hql ="SELECT COUNT(p.id) FROM Person AS p ";//求记录数
Query q =session.createQuery(hql);
List all = q.list();
Iterator iter = all.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
Configuration conf = new Configuration().configure();
SessionFactory factory = conf.buildSessionFactory();
Session session = factory.openSession();
User u = null;
//通过Query接口查询单个数据
List l = null;
String hql ="FROM User as p WHERE p.id = ?";//必须是User类名,而不是USERS表名,因为查找的是对象,而不是表,对象就对应着表
Query q = session.createQuery(hql);
q.setString(0,"111");
l = q.list();//q.list();查询语句
//固定模式输出
Iterator iter =l.iterator();
if(iter.hasNext()){
u = (User)iter.next();
}
System.out.println(u.getName());//查询操作
//通过Query接口全部查询
List ll =null;
String hql2 ="FROM User as p";
Query qq = session.createQuery(hql2);
ll = qq.list();
//固定模式输出
Iterator iter1 =ll.iterator();
while(iter1.hasNext()){
u = (User)iter1.next();
System.out.println(u.getName());
}
//模糊查询
List lll =null;
String hql3 = "FROM User as p WHERE p.name LIKE ?";
Query qqq = session.createQuery(hql3);
qqq.setString(0, "%"+"c"+"%");
lll= qqq.list();
//固定模式输出
Iterator iter2 =lll.iterator();
if(iter2.hasNext()){
u = (User)iter2.next();
}
System.out.println(u.getName());//查询操作
转载:http://blog.csdn.net/lmllmllmllml0000/article/details/4589794