欢迎来到天天文库
浏览记录
ID:11465347
大小:1.68 MB
页数:19页
时间:2018-07-12
《ssh企业培训之高级hibernate查询》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级Hibernate查询刘晓涛介绍讲授:刘晓涛Tel:13640962307Email:lxt008@163.comBlog:http://blog.csdn.net/liuxiaotao008MSN:lxt008@live.cn命名查询等。存储过程。HQL连接查询。其他HQL查询。换掉Hibernate产生的sql语句。N+1查询问题。笛卡儿积问题。过滤查询。本章目标命名查询与原生/本地SQL查询2、pwhereemp.empno=:empno]]>getNamedQuery()QueryhqlQuery=session.getNamedQuery("queryByNo");Empemp=newEmp();emp.3、setEmpno(newLong(7788));//设置参数hqlQuery.setProperties(emp);Iteratorit=hqlQuery.iterate();while(it.hasNext()){EmpresultEmp=(Emp)it.next();System.out.println(">>"+resultEmp.getEname()+"<<");}getNamedQuery()QuerysqlQuery=session.getNamedQuery("queryEmp");//设置参数sq4、lQuery.setParameter("empno","7934");ListempList=sqlQuery.list();Iteratorit1=empList.iterator();while(it1.hasNext()){EmpresultEmp=(Emp)it1.next();System.out.println(">>"+resultEmp.getEname()+"<<");}HQL连接查询默认是innerjoin,inner可以省略。Liststudents=session.createQuery5、("selectc.name,s.namefromStudentsinnerjoins.classesc").list();左外连接Liststudents=session.createQuery("selectc.name,s.namefromClassescleftjoinc.studentss").list();右外连接Liststudents=session.createQuery("selectc.name,s.namefromClassescrightjoinc.studentss").list();6、其他HQL查询方式对象导航查询:Liststudents=session.createQuery("selects.namefromStudentswheres.classes.namelike'%t%'").list();查询实体对象:Liststudents=session.createQuery("selectnewStudent(id,name)fromStudent").list();需要相应构造器才行:publicStudent(intid,Stringname){this.id=id;this.na7、me=name;}其他HQL查询方式给in使用setParameterList设置范围:Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.idin(:myids)").setParameterList("myids",newObject[]{1,2,3,4,5}).list();不提倡使用update/delete:session.createQuery("updateStudentssets.name=?wheres.id8、=?").setParameter(0,"lxt008").setParameter(1,5).executeUpdate();Oracle存储过程与函数insert/update/delete功能的过程应该通过session.connection()获取JDBC连接后依据老式的方式CallableStatement来处理。查询功能:函数需返回sys_refcursor,
2、pwhereemp.empno=:empno]]>getNamedQuery()QueryhqlQuery=session.getNamedQuery("queryByNo");Empemp=newEmp();emp.
3、setEmpno(newLong(7788));//设置参数hqlQuery.setProperties(emp);Iteratorit=hqlQuery.iterate();while(it.hasNext()){EmpresultEmp=(Emp)it.next();System.out.println(">>"+resultEmp.getEname()+"<<");}getNamedQuery()QuerysqlQuery=session.getNamedQuery("queryEmp");//设置参数sq
4、lQuery.setParameter("empno","7934");ListempList=sqlQuery.list();Iteratorit1=empList.iterator();while(it1.hasNext()){EmpresultEmp=(Emp)it1.next();System.out.println(">>"+resultEmp.getEname()+"<<");}HQL连接查询默认是innerjoin,inner可以省略。Liststudents=session.createQuery
5、("selectc.name,s.namefromStudentsinnerjoins.classesc").list();左外连接Liststudents=session.createQuery("selectc.name,s.namefromClassescleftjoinc.studentss").list();右外连接Liststudents=session.createQuery("selectc.name,s.namefromClassescrightjoinc.studentss").list();
6、其他HQL查询方式对象导航查询:Liststudents=session.createQuery("selects.namefromStudentswheres.classes.namelike'%t%'").list();查询实体对象:Liststudents=session.createQuery("selectnewStudent(id,name)fromStudent").list();需要相应构造器才行:publicStudent(intid,Stringname){this.id=id;this.na
7、me=name;}其他HQL查询方式给in使用setParameterList设置范围:Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.idin(:myids)").setParameterList("myids",newObject[]{1,2,3,4,5}).list();不提倡使用update/delete:session.createQuery("updateStudentssets.name=?wheres.id
8、=?").setParameter(0,"lxt008").setParameter(1,5).executeUpdate();Oracle存储过程与函数insert/update/delete功能的过程应该通过session.connection()获取JDBC连接后依据老式的方式CallableStatement来处理。查询功能:函数需返回sys_refcursor,
此文档下载收益归作者所有