JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理

上传人:w****i 文档编号:92206831 上传时间:2019-07-07 格式:PPT 页数:22 大小:1.23MB
返回 下载 相关 举报
JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理_第1页
第1页 / 共22页
JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理_第2页
第2页 / 共22页
JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理_第3页
第3页 / 共22页
JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理_第4页
第4页 / 共22页
JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理》由会员分享,可在线阅读,更多相关《JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE企业级项目开发教学课件作者蒋卫祥朱利华单元四JavaEE-单元4任务4员工基本信息管理(22页珍藏版)》请在金锄头文库上搜索。

1、Struts2+Hibernate+Spring,JavaEE 企业级项目开发,单元四 人事管理,任务4 员工基本信息管理,目录页,第1页,任务4 员工基本信息管理,过渡页,第2页,过渡页,任务简介,任务4 员工基本信息管理,任务简介,本任务的目标是学习Hibernate的数据查询,本任务 QBC HQL 查询所有员工和查询指定员工,第3页,过渡页,第4页,过渡页,任务分析,任务4 员工基本信息管理,任务分析,HQL提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。使用HQL查询可以进行属性查询、参数绑定查询、查询时进行分组与排序等 员工基本信息管理模块中,主要实现员工信息的

2、增加、修改、删除、查看等功能 本任务主要介绍管理员身份登录后,可以查看所有员工信息并显示,也可以根据某一条件获取员工信息,第5页,过渡页,第6页,过渡页,相关支撑知识,相关支撑知识,Query By Criteria通过面向对象的设计,对查询条件进行了面向对象封装,将查询条件封装为一个预定义的查询对象,由这个查询对象来执行查询 QBC查询主要由org.hibernate.Criteria接口、org.hibernate.Criterion接口、org.hiberante.Restrictions类组成,可使用Order工具类的方法设置排序方式,Projections工具类的方法进行统计和分组,

3、第7页,一 Q B C,任务4 员工基本信息管理,相关支撑知识,使用Session实例的createCriteria()方法创建Criteria对象 可使用Restrictions的相关方法为Criteria对象设置查询条件 添加查询条件,使用Criteria对象的list()方法进行查询 处理查询结果,第8页,一 Q B C,任务4 员工基本信息管理,使用QBC 查询基本步骤,相关支撑知识,HQL具有与SQL语言类似的语法规范,HQL针对持久化对象,HQL是完全面向对象的查询语句,具备继承、多态和关联等特性,可以用HQL查询具有继承、多态和关联关系的数据。在检索数据时,一般优先考虑使用HQL

4、方式。 HQL语句本身是不区分大小写的,关键字可以使用大写字母,也可以使用小写字母,但是其中出现的类名和属性名必须注意大小写区分,完整的HQL语法结构如下: select/update/delete from where group by having order by,第9页,二 H Q L,任务4 员工基本信息管理,相关支撑知识,获取Hibernate Session对象 编写HQL语句 以HQL语句为参数,调用Session的createQuery方法创建查询对象 若HQL语句包含参数,则调用Query的setXXX方法为参数赋值 调用Query对象的list等方法遍历查询结果,第10页

5、,二 H Q L,任务4 员工基本信息管理,相关支撑知识,public void deleteDepart() / 创建session对象 Session session = HibernateSessionFactory.getSession(); Transaction transaction=session.beginTransaction(); / 编写HQL查询语句 String hql=“delete Department dept where dept.departName like java%“; / 创建Query对象 Query query = session.create

6、Query(hql); /执行删除的HQL语句 query.executeUpdate(); mit(); session.close(); ,第11页,二 H Q L,任务4 员工基本信息管理,相关支撑知识,public void getAllDeparts() / 创建session对象 Session session = HibernateSessionFactory.getSession(); / 编写HQL查询语句 String hql = “from Department depart“; / 创建查询对象 Query query = session.createQuery(hql

7、); / 执行查询 List list = query.list(); / 处理查询的结果,输出显示 for (int i = 0; i list.size(); i+) Department depart = (Department) list.get(i); System.out.println(depart.getDepartId() + “ “ + depart.getDepartName() + “ “ + depart.getPhone(); ,第12页,二 H Q L,任务4 员工基本信息管理,相关支撑知识,/修改之后的HQL查询语句 String hql=“select d.d

8、epartId,d.departName from Department d“; Query query = session.createQuery(hql); List list = query.list(); / 处理查询的结果,输出显示 for (int i = 0; i list.size(); i+) Object obj=(Object)list.get(i); /查询得到的是Object对象数组 System.out.println(obj0+“ “+obj1); ,第13页,二 H Q L,任务4 员工基本信息管理,/查询多个属性并封装到对象 String hql=“selec

9、t new Department(d.departId,d.departName) from Department d“; Query query = session.createQuery(hql); List list = query.list(); / 处理查询的结果,输出显示 for (int i = 0; i list.size(); i+) Department depart = (Department) list.get(i); System.out.println(depart.getDepartId()+“ “+depart.getDepartName(); ,相关支撑知识,

10、Order by子句 与SQL语句相似,HQL查询也可以通过order by子句对查询结果集进行排序,并且可以通过asc或者desc关键字指定排序方式,如下面的代码: from Department depart order by depart.departId asc,depart.departName desc; 上面HQL查询语句,会以departId属性进行升序排序,以departName属性进行降序排序,而且与SQL语句一样,默认的排序方式为asc,即升序排序。 Group by子句与统计查询 在HQL语句中同样支持使用group by子句分组查询,还支持group by子句结合聚集

11、函数的分组统计查询,大部分标准的SQL聚集函数都可以在HQL语句中使用,比如:count(),sum(),max(),min(),avg()等。,第14页,二 H Q L,任务4 员工基本信息管理,相关支撑知识,第15页,二 H Q L,任务4 员工基本信息管理,1. 按参数名称绑定,在HQL语句中定义命名参数要用“:”开头,形式如下: String hql=“from Department d where d.departId=:id“; Query query=session.createQuery(hql); query.setInteger(“id“, 5); /设置命名参数值,id号

12、为5 List list = query.list(); 上面代码中用:id定义了命名参数,用Query接口的setXXX()方法设定名参数值,setXXX()方法包含两个参数,分别是命名参数名称和命名参数实际值。,相关支撑知识,第16页,二 H Q L,任务4 员工基本信息管理,2. 按参数位置绑定,在HQL查询语句中用“?”来定义参数位置,形式如下: String hql=“from Department d where d.departId=?“; Query query=session.createQuery(hql); query.setString(0,id); 同样使用setXX

13、X()方法设定绑定参数,只不过这时setXXX()方法的第一个参数代表绑定参数在HQL语句中出现的位置编号(由0开始编号),第二个参数仍然代表参数实际值。,相关支撑知识,第17页,二 H Q L,任务4 员工基本信息管理,3. setParameter()方法,在Hibernate的HQL查询中可以通过setParameter()方法绑定任意类型的参数。 String hql=“from Department d where d.departId=? “; Query query=session.createQuery(hql); query.setParameter(“id“,5,Hiber

14、nate.INTEGER); setParameter()方法包含三个参数,分别是命名参数名称,命名参数实际值,以及命名参数映射类型。可以直接这样写: query.setParameter(“id“,5);,相关支撑知识,第18页,二 H Q L,任务4 员工基本信息管理,4. setProperties()方法,在Hibernate中可以使用setProperties()方法,将命名参数与一个对象的属性值绑定在一起,如下程序代码: Customer customer=new Customer(); customer.setName(“pansl”); customer.setAge(80); Query query=session.createQuery(“from Customer c where c.name=:name and c.age=:age ”); query.setProperties(customer); setProperties()方法会自动将customer对象实例的属性值匹配到命名参数上,但是要求命名参数名称必须要与实体对象相应的属性同名。,过渡页,第19页,过渡页,任务小结,任务小结,能力目标,第20页,任务3 角色权限设置,谢谢观看,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号