什么是hql以及hql和sql的区别

一、hql的定义

Hibernate 查询语言(HQL)是一种面向对象的查询语言,类似于 SQL,但不是去对表和列进行操作,而是面向对象和它们的属性。

二、HQL

1.HQL里面的类名和属性名区分大小写,但关键字不区分大小写
2. ? 从下标0开始计算位置
3. HQL支持:命名参数
4. HQL是面向对象的查询语言

三、SQL

1.SQL里面的表名和列名不区分大小写
2.? 从顺序1开始计算位置
3.SQL不支持:命名参数
4.SQL是面向结构的查询语言

四、处理返回的结果集

4.1 单个对象:通过查询语句得到这个对象的所有属性值
示例代码:

@Test
	public void list() {
   
		String hql="from User";
		Session session = SessionFactoryUtil.getSession();
		Transaction transaction = session.beginTransaction();
		//创建批量对象
		Query query = session.createQuery(hql);
		//运行这个批量对象
		List<User> list = query.list();
		for (User user : list) {
   
			System.out.println(user);
		}
		transaction.commit();
		SessionFactoryUtil.closeSession();
	}

4.2 Object[]:通过查询语句得到指定的几个属性的值
示例代码:

@Test
	public void list2() {
   
		String hql="select userName,userPwd from User";
		Session session = SessionFactoryUtil.getSession();
		Transaction transaction = session.beginTransaction();
		//创建批量对象
		Query query = session.createQuery(hql);
		//运行这个批量对象
		List<Object[]> list = query.list();
		for (Object[] user : list) {
   
			System.out.println(Arrays.toString(user

你可能感兴趣的:(什么是hql以及hql和sql的区别)