Session session=HibernateUntil.getSessionFactory().openSession();
Transaction tx=session.beginTransaction();
//HQL语言
//1.查询所有实体信息{User1 是实体类的名字,不是数据库的表名}
/*String hql="from User1";
String hql1="from User1 as uaers";//as 用于为持久类起别名
String hql2="from User1 as uaers where id>2";//条件判断
Query query=session.createQuery(hql);
List list=query.list();
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}*/
//2.属性查询
//只获取name属性对应的值
/*String hql3="select name from User1";
Query query1=session.createQuery(hql3);
List list1=query1.list();
for(int i=0;i<list1.size();i++)
{
System.out.println(list1.get(i));
}*/
//一次查询多个属性{返回object数组}
/*String hql4="select name,password from User1";
Query query2=session.createQuery(hql4);
List list2=query2.list();
for(int i=0;i<list2.size();i++)
{
Object[] obj=(Object[]) list2.get(i);
System.out.println(obj[0]);
System.out.println(obj[1]);
}*/
//利用HQL提供的动态构造实例的功能,对这些平面数据进行封装
//【注意】
//动态构造的实例,其实体类必须有构造函数,构造函数的个数必须与动态构造的实例属性一样,顺序一样,
/*String hql5="select new User1(user1.name,user1.password) from User1 as user1";
Query query=session.createQuery(hql5);
List list3=query.list();
for(int i=0;i<list3.size();i++)
{
User1 u=(User1) list3.get(i);
System.out.println("姓名"+u.getName()+"密码"+u.getPassword());
*/
//这里执行一个save操作,而不是执行update操作,因为这个User1对象的id为空
/*session.saveOrUpdate(u);
}
*/
//3.实体类的更新和删除{Hibernate3的新功能}
//修改操作
/*String hql="update User1 set name=521 where password=1";
Query query=session.createQuery(hql);
query.executeUpdate();*/
//删除操作
/*String hql="delete from User1 where password=12345678952";
Query query=session.createQuery(hql);
query.executeUpdate();*/
//4.HQL聚集函数
/* String hql1="select count(*),max(id),min(id),avg(id) from User1";
Query query =session.createQuery(hql1);
Object []object=(Object[]) query.uniqueResult();//返回唯一的结果。
for(int i=0;i<object.length;i++)
{
System.out.println(object[i]);
}*/
//使用distinct取出重复数据
/*String hql2="select distinct name from User1";
Query query1 =session.createQuery(hql2);
List list=query1.list();//返回唯一的结果。
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}*/
//5.分组和排序
//分组
String hql="select avg(name) from User1 group by sex";
//排序
String hql1="from User1 by name asc";//asc升序 desc 降序
//多个的户型进行排序
String hql2="from User1 order by name desc,age asc";
//如何获取分组查询的数据,这是个问题?
//6.子查询
//查询年龄发育平均年龄的
String hql3="from User1 where age >(select avg(age) from User1)";
tx.commit();//提交事务
HibernateUntil.shutdown();//关闭session实例
Hibernate-----------------HQL语言
最新推荐文章于 2022-12-28 12:31:02 发布