Session session = HibernateSessionFactory.getSession();
/##
# 经过HQL语句查询表中的sex字段,distinct是不容许有重复值
# ---给表中增长SEX字段后必须在xml映射文件以及实体类种增长属性
# SQL="select distinct sex from admin";
#/
/#String hql = "select distinct a.sex from Admin as a ";
Query query = session.createQuery(hql);
List list = query.list();
Iterator iter = list.iterator();
while(iter.hasNext()){
//它不是一个对象,因此只许迭代打印出集合的数据
System.out.println(iter.next());
}#/
/##
# Count查询所有的记录数据
# SQL="select count(#) from admin";
#
#/
/##
#
avg查询所有年龄的平均数,注意只能求int型的参数
# SQL="select avg(age) from admin";
# HQL="select avg(a.age) from Admin as a";
#/
/#String hql = "select count(#) from Admin as a";
Query query = session.createQuery(hql);
List list = query.list();
Iterator iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}#/
/##
# 带where 条件的HQL
# 更新删除 HQL
# update Admin set name="李四" where aid="6"
# delete Admin where name="李四";
#
1.HQL="from Admin a where(a.age/10=3)";
#
2.HQL="from Admin a where(a.age>20) and (a.aname='赵六')"
#
3.is null或者is not null判断数据是否为空
#
HQL="from Admin a where a.name is not null";
#
4.between and 测试字段是否在指定的范围内
#
HQL="from Admin a where a.aid between 5 and 9";
#
5.in或者not in来测试字段是否在指定的集合中
#
HQL="from Admin a where a.name in('张三','李四')"
#
6.like或者not like进行模糊条件查询
#
HQL="from Admin a where a.name like'张%'";
#
7.order by 进行排序
#
HQL="from Admin a order by a.age";
#
8.desc 反排序
#
HQL = "from Admin a order by a.age desc";
#
9.同时指定两个以上的排列方式,先按age反排序,如age相同再按name顺序排列
#
HQL="from Admin a order by a.age desc,a.aname";
#
10.按指定的字段依据相同的内容分组,取出性别为男或者女的平均年龄
#
HQL="select a.sex,avg(a.age) from Admin a group by a.sex";
#
11.只将平均大于20的数据分组显示出来
#
HQL="select a.sex,avg(a.age) from Admin a group by a.sex" having avg(a.age)>20;
#
#/
String hql = "from Admin as a where a.aname=?";
Query query = session.createQuery(hql);
query.setString(0, "钱七");
List list = query.list();
Iterator iter = list.iterator();
while(iter.hasNext()){
Admin admin = (Admin) iter.next();
System.out.println(admin.getAname());
}
/##
# 分页操做
#setFirstResult从第几行开始取数据
#setMaxResults取多少行数据
#/
String sql = "from Admin as a";
Query q = session.createQuery(sql);
q.setFirstResult(0);
q.setMaxResults(3);
List l = q.list();
Iterator i = l.iterator();
while(i.hasNext()){
Admin a = (Admin)i.next();
System.out.println(a.getAname()+"--"+a.getSex()+"--"+a.getAge());
}
}