| 三大框架: Struts框架 1. params攔截器: 請(qǐng)求數(shù)據(jù)封裝 2. 類型轉(zhuǎn)換/數(shù)據(jù)處理 3. struts配置 4. 文件上傳/下載/國際化處理 5. 數(shù)據(jù)效驗(yàn)/攔截器 6. Ognl表達(dá)式 7. 數(shù)據(jù)回顯/模型驅(qū)動(dòng)/防止表單重復(fù)提交 
 Hibernate框架 1. Api簡介 2. 映射 多對(duì)一/一對(duì)多: 部門與員工 多對(duì)多/一對(duì)一 集合映射/組件映射/繼承映射 3. Hibernate 緩存 4. 常用屬性:inverse/lazy/cascade 5. 對(duì)象狀態(tài):臨時(shí)/持久/游離 
 Spring框架 1) Spring IOC容器 【Inversion Of Control,即控制反轉(zhuǎn)】 創(chuàng)建對(duì)象/處理對(duì)象依賴關(guān)系 2) Aop編程 3) Spring聲明式事務(wù)管理 4) 框架整合 Spring與Struts Spring與Hibernate 5)Spring對(duì)jdbc、hibernate操作的封裝 JdbcTemplate (dataSource)/ HibernateTemplate(SessionFactory) 
 
 目標(biāo): 案例 【軟件項(xiàng)目聲明周期】 
 
 1. 需求分析系統(tǒng)概述: 企業(yè)人事管理系統(tǒng)! 要求對(duì)員工信息進(jìn)行維護(hù); 后臺(tái)系統(tǒng)先登陸,才能操作員工: 添加/修改/刪除 沒有登陸,只能查看列表,不能操作! 
 功能分類: 【管理員模塊:】 注冊(cè)/登陸 【員工模塊】 1) 添加一個(gè)員工, 指定添加的部門 2) 對(duì)指定的員工信息修改 3) 刪除選擇員工 4)列表展示 
 2. 設(shè)計(jì)2.1 系統(tǒng)設(shè)計(jì) | 
| 1) 設(shè)計(jì)數(shù)據(jù)庫: hib_demo | 
| CREATE TABLE t_admin( id INT PRIMARY KEY AUTO_INCREMENT, adminName VARCHAR(20), pwd VARCHAR(20) ) 表: t_dept/ t_employee | 
| 2) 建立web項(xiàng)目、引入jar文件、準(zhǔn)備環(huán)境 【struts相關(guān)jar】 commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar ognl-3.0.5.jar struts2-core-2.3.4.1.jar xwork-core-2.3.4.1.jar 
 【hibernate 相關(guān) jar】 antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar hibernate3.jar hibernate-jpa-2.0-api-1.0.0.Final.jar javassist-3.12.0.GA.jar jta-1.1.jar slf4j-api-1.6.1.jar 
 【Spring-core】 commons-logging-1.1.3.jar spring-beans-3.2.5.RELEASE.jar spring-context-3.2.5.RELEASE.jar spring-core-3.2.5.RELEASE.jar spring-expression-3.2.5.RELEASE.jar 
 【Spring-web】 spring-web-3.2.5.RELEASE.jar struts2-spring-plugin-2.3.4.1.jar 
 【Spring-Aop】 aopalliance.jar aspectjrt.jar aspectjweaver.jar spring-aop-3.2.5.RELEASE.jar 
 【Spring-orm】 c3p0-0.9.1.2.jar mysql-connector-java-5.1.12-bin.jar spring-orm-3.2.5.RELEASE.jar spring-tx-3.2.5.RELEASE.jar spring-jdbc-3.2.5.RELEASE.jar | 
| 3) 設(shè)計(jì)javvabean、寫映射 | 
| public class Admin { 
 private int id; private String adminName; private String pwd; } | 
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www./dtd/hibernate-mapping-3.0.dtd"> 
 <hibernate-mapping package="cn.itcast.entity"> 
 <class name="Admin" table="t_admin"> <id name="id"> <generator class="native"></generator> </id> <property name="adminName" length="20"></property> <property name="pwd" length="20"></property> </class> 
 </hibernate-mapping> | 
| public class Dept { 
 private int id; private String name; } | 
| <hibernate-mapping package="cn.itcast.entity"> 
 <class name="Dept" table="t_dept"> <id name="id" column="deptId"> <generator class="native"></generator> </id> <property name="name" column="deptName"></property> </class> 
 </hibernate-mapping> | 
| 
 | 
| public class Employee { 
 private int id; private String empName; private double salary; private Dept dept; } | 
| <hibernate-mapping package="cn.itcast.entity"> 
 <class name="Employee" table="t_employee"> <id name="id" column="empId"> <generator class="native"></generator> </id> <property name="empName"></property> <property name="salary"></property> <!-- 多對(duì)一 --> <many-to-one name="dept" column="dept_id" class="Dept"></many-to-one> </class> 
 </hibernate-mapping> | 
| 
 | 
| 4) Dao設(shè)計(jì)接口 | 
| public interface IAdminDao { 
 /** * 保存 * @param admin 管理員對(duì)象 */ void save(Admin admin); 
 /** * 根據(jù)管理員信息查詢 * @param admin 管理員對(duì)象 * @return 返回查詢后的結(jié)果 */ Admin findByAdmin(Admin admin); 
 } 
 | 
| public interface IDeptDao { 
 /** * 查詢?nèi)?/span> * @return 返回全部信息 */ List<Dept> getAll(); 
 /** * 根據(jù)主鍵查詢 * @param id 主鍵 * @return 返回查詢后的結(jié)果 */ Dept findById(int id); 
 } | 
| public interface IEmployeeDao { 
 /** * 保存員工 * @param emp */ void save(Employee emp); 
 /** * 跟新員工信息 * @param emp */ void update(Employee emp); 
 /** * 根據(jù)主鍵刪除 * @param id */ void delete(int id); 
 /** * 根據(jù)主鍵查詢 * @param id * @return */ Employee findById(int id); 
 /** * 查詢?nèi)?/span> * @return */ List<Employee> getAll(); 
 /** * 根據(jù)員工名稱條件查詢 * @param employeeName * @return */ List<Employee> getAll(String employeeName); 
 } | 
| Dao實(shí)現(xiàn)、service省略 | 
| ….. | 
| 
 | 
|  |