二.Hibernate 提供的查询方式
OID查询方式(o指的是object)
通过get()和load()方法加载指定OID的对象
save()添加 update()更新 delete()删除
HQL查询方式(面向对象的查询语言)
query的list()方法返回查询的集合
属性查询
投影查询(实体类中必须有对应的构造方法)
select Emp(ename,pno) from Emp
分页的实现
query.setFristResult((pageindex-1)*pagesize);设置开始的记录数
query.setFristResult(pagesize);设置每页最大记录数
连接查询 》内连接(From Entity inner join Entity.property)
》外连接(From Entity outer join Entity.property)
》左外连接(From Entity left join Entity.property)
》右外连接(From Entity right join Entity.property)
实体更新和实体删除都是调用的executeUpdate()方法。
通过query接口使用HQL语言进行查询
QBC查询方式
通过Criteria等接口和类进行查询;
本地SQl查询方式
使用原生SQL语言进行查询
对象导航查询方式
通过已经加载的对象,导航到其关联对象
Hibernate检索策略
立即检索:立即加载与当前对相关联风对象,需要执行对跳select语句
延迟检索:不立即加载与当前对相关联的对象,在第一次访问关联对象时才加载在其信息
迫切做外连接检索:通过做外连接加载与当前对象关联的对象。为立即加载检索策略,但
在执行的select语句少,只执行1条select连接查询语句
检索作用域》类级别:只作用于当前对象load()》关联级别:
类级别检索只支持load()或get()。当需要按照OID方式查找时建议用类级别检索
——load和get方法的区别
》记录不存在时的处理方式不同 get()返回Null,load抛出HibetnateException异常
》load可以返回实体的代理类是咧,get永远都是直接实体类。或者说liad方法支持延迟加载配置Lazy="true",而get
方法总是立即加载.
2.对于HQL增,删,改 要进行事物的处理(Transaction)注意:打开的事物必须创建事物对象接收,操作后必须尽心事物的提交(commit)不然报空指针异常.