后端學(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)登錄功能說明:大致流程圖如下:
這里寫圖片描述