J2EE項目系列(一)--學(xué)生管理系統(tǒng)

后端學(xué)習(xí)之路開始了,很讓人興奮,因為自己的真正職業(yè)規(guī)劃應(yīng)該大致浮現(xiàn)了,寫這個的時候本來以為會很困難的,因為之前一點(diǎn)都不了解后端,誰知道寫著寫著發(fā)現(xiàn),其實(shí)跟android開發(fā)基本共通的,都是MVC,都是接口設(shè)計,都是邏輯分析。好了,這個系列會以逐步掌握J(rèn)ava后端框架為主線來寫些基本的項目。希望大家有所收獲。


文章結(jié)構(gòu):1.項目介紹(功能業(yè)務(wù)邏輯,運(yùn)用的知識,項目數(shù)據(jù)庫等);2.項目架構(gòu)介紹以及部分關(guān)鍵邏輯代碼說明。


一、項目介紹:

總述:一個適合初學(xué)者學(xué)習(xí)MVC架構(gòu)的J2EE項目--學(xué)生管理系統(tǒng)

(1)功能介紹:

1.添加管理賬號,包括賬號、密碼,你的名字;
2.登錄功能大概流程模式
3.根據(jù)姓名查詢學(xué)生信息,根據(jù)姓名刪除學(xué)生信息,查詢所有學(xué)生信息,增加學(xué)生,修改學(xué)生名字。

(2)運(yùn)用的知識:

1.基本數(shù)據(jù)庫知識
2.jsp+servlet+mysql
3.(重點(diǎn))MVC設(shè)計模式的應(yīng)用

(3)導(dǎo)入的jar包:

commons-beanutils-1.9.3.jar,commons-logging-1.2.jar,logback-classic-1.1.7.jar,logback-core-1.1.7.jar,mysql-connector-java-5.0.8-bin.jar,slf4j-api-1.7.21.jar

(4)建包,如下圖:用了個非大型項目分包方式,方便初學(xué)者看的方式。

這里寫圖片描述
只用兩個包管理,一個管理user的,一個管理學(xué)生信息的。

(5)數(shù)據(jù)庫:

//學(xué)生表
CREATE TABLE student(
STID INT AUTO_INCREMENT PRIMARY KEY,
STNAME VARCHAR(20),
STSEX VARCHAR(10),
STAGE VARCHAR(10),
STPHONE VARCHAR(20)
);
//管理員表,起這個名我們要注意到,我們在工廠的bean類名為:UserStudent。這兩者是必須對應(yīng)的。
CREATE TABLE userstudent(
userid VARCHAR(30) PRIMARY KEY,
name VARCHAR(30),
password VARCHAR(32)
);
//測試數(shù)據(jù)
INSERT INTO userstudent(userid,name,password) VALUES ('fuzhu','fuzhu','751197996');
INSERT INTO student(STID,STNAME,STSEX,STAGE,STPHONE) VALUES (123,'fuzhufuzhu',boy','20','13531477062');

(6)項目功能截圖:(沒有用太多前端的知識,為了方便給初學(xué)者看,就是單純的幾個表單)

這里寫圖片描述
這里寫圖片描述
這里寫圖片描述
這里寫圖片描述

導(dǎo)入工程:eclipse導(dǎo)入工程方法


二、項目架構(gòu)介紹以及部分關(guān)鍵邏輯代碼說明

項目架構(gòu)如圖:
這里寫圖片描述

(1)主要的設(shè)計流程:定了兩個接口

//管理學(xué)生信息的接口
public interface IStudentDAO {
    /**
     *          學(xué)生信息查詢
     * @param string            傳入姓名
     * @return                  學(xué)生對象
     * @throws Exception
     */
        public Student findStudent(String  name) throws Exception;//根據(jù)名字查找學(xué)生
        public Student insertStudent(Student student) throws Exception;//增加學(xué)生
        public Student deleteStudent(String  name) throws Exception;//根據(jù)名字去刪除學(xué)生名字
        public Student updateStudent(String  proviousName,String nowName) throws Exception;//更新學(xué)生名字
        @SuppressWarnings("unchecked")
        public List StSelect() throws Exception;//查詢?nèi)繉W(xué)生
}

//管理管理賬號的接口
public interface IUserDao {
    /**
     *  
     * @param user      傳入VO對象
     * @return              驗證操作結(jié)果
     * @throws Exception        拋出異常
     */
    public boolean findLogin(Userstudent user) throws Exception;//從數(shù)據(jù)庫核對管理人員信息后才讓其登錄

    public void update(Userstudent user);//注冊管理員
}

(2)設(shè)計模式的運(yùn)用:(架構(gòu)上的)

1.代理模式,user和student的管理使用代理模式,讓外部不直接訪問接口的真正業(yè)務(wù)邏輯實(shí)現(xiàn)類,實(shí)現(xiàn)解耦。
2.工廠模式,定義工廠類,來取得DAO的實(shí)例,因為DAO只是完成數(shù)據(jù)層的操作,而在場景中使用工廠類是完成與view的耦合,所以為了避免耦合,來使用工廠類,完成解耦。

(3)登錄功能說明:大致流程圖如下:

這里寫圖片描述
不過在真正的項目中,基本的數(shù)據(jù)格式驗證是由filter完成的,這里我偷懶了。

源碼傳送門:github地址:J2EE項目系列(一)--學(xué)生管理系統(tǒng) 喜歡的可以star或fork啦,謝謝!

好了,J2ee項目從0開始(一)--學(xué)生管理系統(tǒng)。本博客是學(xué)習(xí)J2EE開始的第一個小項目,這也是J2EE項目從0開始系列的(一),我會把我的理解、思考路線、項目構(gòu)建一一詳細(xì)寫在這一系列的博客中。歡迎在下面指出錯誤,共同學(xué)習(xí)!

轉(zhuǎn)載請注明:【JackFrost的博客】

更多內(nèi)容,可以訪問JackFrost的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,308評論 25 708
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,284評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 我們今天就談?wù)搲粝霝槭裁磿恋K你成功? 樂觀的幻想在我們腦中形成美夢成真的假象,也虛熬了我們的動力。 很多人對于自...
    得一_閱讀 433評論 0 1
  • 想聽遍所有自然的蹤跡,海邊微風(fēng),樹葉簌簌,清泉叮咚,更想聽你的聲音。 想念爬滿了整個身體,入侵我心靈最深的地方,狠...
    霹靂霹靂小菠蘿頭閱讀 134評論 0 0

友情鏈接更多精彩內(nèi)容