小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

簡單SSH項(xiàng)目開發(fā)步驟

 comeonwyj 2018-07-25

三大框架:

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框架

1Spring IOC容器 【Inversion Of Control,即控制反轉(zhuǎn)】

創(chuàng)建對(duì)象/處理對(duì)象依賴關(guān)系

2Aop編程

3Spring聲明式事務(wù)管理

4) 框架整合

SpringStruts

SpringHibernate

5Spring對(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ì)
【系統(tǒng)架構(gòu)師/技術(shù)經(jīng)理】

主要做下面的事情,

1) 搭建系統(tǒng)框架結(jié)構(gòu)

(基于mvc結(jié)構(gòu)應(yīng)用)

2) 確定項(xiàng)目的關(guān)鍵點(diǎn)/難點(diǎn)

3) 確定引用組件、公用類的版本

Struts2.3

Hibernate3.6

Spring3.2

2.2 數(shù)據(jù)庫設(shè)計(jì)

管理員表: t_admin

員工表:   t_employee

部門:     t_dept

 

 

3. 代碼

步驟分析

編碼順序:

 

1) 設(shè)計(jì)數(shù)據(jù)庫:  hib_demo

       建表: t_admin/t_employee/t_dept

2) 建立web項(xiàng)目、引入jar文件、準(zhǔn)備環(huán)境

3) 設(shè)計(jì)javvabean、寫映射

     Admin.java   封裝管理員

     Employee.java  員工

     Dept.java      部門

 

     Admin.hbm.xml

     Employee.hbm.xml

     Dept.hbm.xml

4) Dao設(shè)計(jì)接口

     IAdminDao.java    管理員模塊

          void  save(Admin admin);

          Admin findByAdmin(Admin  admin);

     IDeptDao.java      部門模塊

          List<Dept> getAll();   

          Dept  findById(int  id);

     IEmployeeDao.java   員工模塊

          Void  save(Employee  emp);

          Void  update(Employee  emp);

          Void  delete(int id);

          Employee  findById(int id);

          List<Employee> getAll();

          List<Employee> getAll(String  employeeName);

5) Dao接口實(shí)現(xiàn)

6)Service接口設(shè)計(jì)

      IAdminService.java    管理員模塊

      void  register(Admin admin);

      Admin  login(Admin  admin);

7)Service接口實(shí)現(xiàn)

8) Action實(shí)現(xiàn)

     EmployeeAction.java   員工模塊

     AdminAction.java 管理員模塊

9)jsp頁面

Index.jsp/list.jsp  首頁列表

http://localhost:8080/項(xiàng)目    首頁列表

 

 

優(yōu)化部分:

10) 用戶登陸攔截器

     UserInterceptor.java   檢查是否登陸

     只有登陸才能操作; 否則只能查看

11) Dao 操作優(yōu)化

     BaseDao.java   所有dao的通用方法,dao都必須繼承此類

(反射泛型)

 

實(shí)現(xiàn)步驟代碼:

 

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省略

…..

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多