欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

轉:傳智播客—jbpm與OA項目(四)

系統 1963 0

上一節課我們已經完成了 OA 項目的基礎部分,對 DAO BEAN 的基本操作。今日開始學習 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 ”掉。

?

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

?

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

?

三、顯示部分

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

?

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

?

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

轉:傳智播客—jbpm與OA項目(四)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕自拍偷拍 | 日本欧美国产 | 色黄视频在线观看 | 亚洲第一黄色网址 | 亚洲欧美视频一区 | 婷婷国产成人精品视频 | 亚洲第一人伊人色综合 | 免费国产免费福利视频 | 亚洲影院一区 | 免费午夜影片在线观看影院 | 国产高清www免费视频 | 欧美亚洲一区二区三区 | 欧美黑人乱大交 | 在线看色片 | 久久久久久久久久久久久久av | 成人伊人 | 精品欧美乱码久久久久久1区2区 | 色图综合| 中文字幕免费 | 日韩在线免费播放 | 欧美a区 | 亚洲综合色视频在线观看 | 色婷婷基地 | 四月婷婷七月婷婷综合 | 三级网站免费观看 | 日韩欧美一区二区在线观看 | 天天爽夜夜爽人人爽 | 深夜福利软件 | 国产在线一区二区三区 | 欧美日韩精品一区二区在线播放 | 久草免费色站 | 青青草原伊人 | 久草免费在线 | 午夜精品一区 | 午夜精品久久久久久99热软件 | 国产精品美女久久久久久 | 久草手机在线播放 | 爱爱视频在线观看 | 久久香蕉国产精品一区二区三 | 97国产精品视频人人做人人爱 | 欧美aaa毛片免费看 日韩精品一二三区 |