学好hibernate系列之认识hql语句

1.在学习hql之前,我们肯定都学过了sql语句,所以我们肯定能学习hql语句,因为语法都是相差无几的。

hql的语法:select ...from...table...where...group by..having...order by..

看了是不是跟sql语句相差无几,或者说是一样呢?

2.sql语句跟hql语句的区别?

我觉得这两种数据库操作语言最大的不同就是对于操作的对象不一样,首先sql语句操作的是表,而hql语句操作的实体,这个是最大的区别,其实hql语句最后都要转化成sql语句的。

3.知道了区别我觉得就可以基本的使用了。(hql)

package com.hibernate.test01.dao.pojo;

import javax.persistence.Embeddable;

public class Address {
	
	private String aid;
	private String provice;
	private String city;
	public Address() {
		// TODO Auto-generated constructor stub
	}
	public String getAid() {
		return aid;
	}
	public void setAid(String aid) {
		this.aid = aid;
	}
	public String getProvice() {
		return provice;
	}
	public void setProvice(String provice) {
		this.provice = provice;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public Address(String aid, String provice, String city) {
		super();
		this.aid = aid;
		this.provice = provice;
		this.city = city;
	}

}

查询所有语句:from Address as a;是不是很简单?as取别名

查询其中的属性: select new map(a.aid,a,provice,a.city)  from Address a;

a.aid,a,provice,a.city 这些都是实体类里面的属性,不是数据表里面的

删除语句语句:delete from Address a;跟sql都一样,只是操作的是实体类

添加以及更新操作:insert into Address a(a.aid,a.provice,a.city)values(?.?,?) 

 update Adress a set a.aprovice=?,a.city=? where a.aid=? 或者是update Address a set a.provice=:provice,a.city=:city where a.aid=:aid 只是执行hql语句传入参数的语句不一样

其他复杂的也是这样的,参照sql语句

执行的语句:

Query query = session.createQuery();

query.setString(index从0开始,要设置的值) =?这种当时

query.setParameter(”:这个的名“, 传进来的值)

query.executeUpdate()来执行。

有不对的地方欢迎指正,谢谢各位亲了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值