<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 78, comments - 34, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    上一節課我們已經完成了OA項目的基礎部分,對DAOBEAN的基本操作。今日開始學習OA項目中“組織管理”這一部分。在學習的過程中,整體上難度相對比較簡單,更多的是項目經驗上的學習。但在配置hibernate的映射文件時,大家有些應付不來。我也不例外,一對一映射關系我掌握的不好。但湯兄弟為人正直、善良,他在晚上下課后給我們被了    。

     

    這個項目雖然未詳細涉及企業項目開發中各方面細節,但整個框架是按照這個流程走的。

     

    組織機構部分

    一、設計部分

    1.了解需求:

    我們沒有進行詳細的需求分析,湯兄弟在前天給我發了一個完成的頁面層(靜態頁面)。需求一眼就看穿了。

    1)         部門管理:增、刪、改、查、(子部門)

    2)         崗位管理:增、刪、改、查

    3)         員工管理:增、刪、改、查

     

    正如你所看到的,搞應用不就是對數據庫的增、刪、改、查嗎?Java將應用做的十分好,而且在繼續發展。哦!這些對她來說太簡單了。

     

    2.設計實體

    設計實體的兩種方式:

    1)         對象-->表:正向工程。(推薦)

    2)         -->對象:反向工程。

     

     

    在早之前的開發中,常見的是第二種方式先設計數據表格,然后再編程定接口。但隨著Java的日益強大,這一過程被反過來了。面向對象的似乎還有很大的潛力!

     

    設計實體時,我們需要考慮用到了哪些(幾個)實體?實體之間的關系是什么?實體具有哪些屬性?我們所說的實體就是Bean。湯兄弟使用StarUML給大家把所有的實體和實體之間的關系畫了出來,我十分喜歡畫圖,感覺似乎比編碼好多了。我在下面也跟著湯兄弟把圖畫出來了:

     

    clip_image002

     

    然后UML課程在OA項目之后,但看著這圖多專業~~??!

     

    我們的實現流程:

    設計實體-->JavaBean-->映射文件-->生成表-->...

     

    設計實體-->JavaBean都比較容易,因為我們使用了hibernate所以生成表也不需要我們來做了。這個流程中最為復雜的是映射文件。因為hibernate才講了三天,OA項目中算是第一次應用hibernate寫東西。

     

    部門實體的映射文件(department):

    <class name="Department" table="ccoa_department">

        <id name="id" column="id">

            <generator class="native"/>

        </id>

        <property name="name" />

        <!-- 與上級部門(多對一) -->

        <many-to-one name="parent" column="parentId" class="Department" />

        <!-- 與子部門(一對多) -->       

        <set name="children">

            <key column="parentId" />

            <one-to-many class="Department" />

        </set>

        <!-- 部門與員工(一對多關系映射) -->

        <set name="employees">

            <key column="departmentId" />

            <one-to-many class="Employee" />

        </set>        

    </class>

     

    職員實體的映射文件(employee):

    <class name="Employee" table="ccoa_employee">

        <id name="id" column="id">

            <generator class="native"/>

        </id>

        <property name="name"/>

        <property name="sex"/>

        <property name="employTime" type="date" />

        <property name="phone" />

        <property name="email" />

        <property name="description" />

           

        <!-- 員工對部門(多對一關系映射) -->

        <many-to-one name="department" column="departmentId" />

       

        <!-- 員工對崗位(多對多關系映射) -->

        <set name="roles" table="ccoa_employee_roles">

            <key column="employeeId"></key>

            <many-to-many class="Role" column="roleId" />

        </set>

       

        <!-- 員工對帳戶(一對一關系映射) -->

        <one-to-one name="user" class="User"/>

    </class>

     

    崗位實體的映射文件(role):

    <class name="Role" table="ccoa_role">

        <id name="id" column="id">

            <generator class="native"/>

        </id>

        <property name="name" />

        <property name="description" />

        <!-- 崗位與員工(多對多關系映射) -->

        <set name="employees"  table="ccoa_employee_roles">

        <key column="roleId" />

        <many-to-many class="Employee" column="employeeId" />

        </set>

    </class>

     

    用戶實體的映射文件(user):

    <class name="User" table="ccoa_user">

        <id name="id" column="id">

            <generator class="foreign">

            <param name="property">employee</param>

            </generator>

        </id>

        <property name="loginName" />

        <property name="password" />

        <!-- 帳戶與員工(一對一關系映射) -->

        <one-to-one name="employee" class="Employee" constrained="true"/>

    </class>

     

    這些映射規則設計的比較合理。但JDO已經比它要簡單的多了。我們學習一些hibernate的關系映射也是十分有必要的。今天晚上湯兄弟給我復習了一下hibernate的映射關系,感覺沒什么難的。湯兄弟說,如果大家對hibernate有了全局的認識。Hibernate很簡單,就那么點東西。

     

    二、實現部分

    上邊我們完成了設計部分,接下來我們來完成實現部分。湯老師是一位比較有經驗的老師,他領著大家做OA時,是由框架到實現,一層一層的去實現我們需要的功能。而不是先設計了一個框架,然后具體去實現某一需求。一層一層的懂嗎?就像剝洋蔥,一層一層的,而不是切洋蔥。

     

    實現部分我們首先實現Action,因為由第一部分我需求我們了解到。每一個管理模塊都有增、刪、改、查。在我們學習Servlet時,我們編寫一個Servlet對應一個操作請求,那我們得寫多少個Servlet啊!但我們在學習Struts1時,接觸到了一個DispatchAction,我們可以將某一管理模塊的操作請求全部放到一個DispatchAction里,所以在這里我們使用了DispatchAction。

     

    我們按原計劃使用三層以實現,接下來開始編寫Servicen層。哇賽,你知道多么簡單嗎?因為我們事先編寫了BeanDaoImpl,所以在Service層中直接調用BeanDaoImlp實例的方法即可,此時的Service層顯得十分沒有必要,浪費得很。

     

    繼續看,我們的BeanDaoImpl繼承自BaseDaoImpl。我們的BeanDaoImpl并未寫任何方法,使用的全是父類BaseDaoImpl的方法。此時BeanDaoImpl顯得也很浪費,那么我們就將它們“@Deprecated”掉。

     

    我們直接將ServiceDao層合并,并且使用BaseDaoImpl這一個類的實例就可以了!

     

    BaseDaoImpl內部使用Hibernatesession實現對數據庫的操作。YEA,Hibernate全幫我們做了。經典!

     

    三、顯示部分

    顯示部分我們使用的全是JSP頁面,表單的檢驗我們使用的是JavaScript,數據顯示使用的是JSTLEL表達式。就這么簡單,OK了!

     

    今天我們只完成了Role(職員)管理這一部分,其他的管理模塊都按照這個模塊的流程來。速度非常之快!

     

    Java特性所能發輝的功力,Java之父早就想到了嗎?


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 色欲国产麻豆一精品一AV一免费| 4399影视免费观看高清直播| 中文字幕不卡亚洲 | 精品在线免费观看| 亚洲欧洲中文日产| 日韩免费无码一区二区视频| 中出五十路免费视频| 亚洲婷婷在线视频| 男人的天堂亚洲一区二区三区| 日韩久久无码免费毛片软件| 亚洲av无码精品网站| 日韩免费高清视频| 可以免费观看的毛片| 亚洲av无码有乱码在线观看| 亚洲av无码成人黄网站在线观看| 国国内清清草原免费视频99| 久久99精品免费一区二区| 456亚洲人成影院在线观| 亚洲色成人中文字幕网站| 啦啦啦高清视频在线观看免费 | 成人网站免费观看| 叮咚影视在线观看免费完整版| 色天使亚洲综合在线观看| 亚洲AV无码久久精品狠狠爱浪潮| 午夜色a大片在线观看免费| 久久精品免费电影| 成人午夜免费视频| 亚洲中文字幕AV在天堂| 久久国产精品亚洲一区二区| 国产一级淫片a免费播放口之| 亚洲免费中文字幕| 污视频在线观看免费| xvideos永久免费入口| 亚洲乱人伦中文字幕无码| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品国产高清不卡在线| 成年女人男人免费视频播放| 2021精品国产品免费观看| 国内精品免费视频精选在线观看| 水蜜桃视频在线观看免费| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW |