Hibernate-----------------HQL语言

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实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞飞翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值