基于SSM框架的管理系統
【文末附源碼】
1
前言
基于SSM框架的管理系統 簡潔版 ;
實現 登錄 、 注冊 、 增 、 刪 、 改 、 查 ;
可繼續完善增加前端、校驗、其他功能等;
可作為SSM項目開發練習基礎模型;
課程設計 、畢業設計開發基礎;
任何復雜的框架都是簡單的知識組合并延伸的,學好基礎知識才是最重要的;
此項目簡單,便于理解基本原理,為復雜SSM復雜項目的開發打下基礎。
2
環境準備
開發平臺 :IDEA 2019
數據庫 :MySQL 5.0.22
服務器 :Tomcat 9.0.37
注意 :需要安裝IDEA開發平臺、MySQL數據庫和Tomcat服務器,版本不一定完全一致,做好版本適應性配置即可。
3
項目結構
3.1數據庫及Java代碼文件
3.2Jsp等前端代碼
3.3Tomcat服務器配置與運行
3.4MySQL數據庫
4
基本原理
4.1相關概念
** Spring**
Spring是一個開源框架,是2003年興起的輕量級的Java開發框架,為解決企業應用開發的復雜性而創建的。簡單來說,Spring是一個輕量級的控制反轉(IOC)和面向切面(AOP)的容器框架。日常開發中IOC容器使用較多,可以裝載Bean,即Java中的類,不用在每次使用類的時候初始化,很少出現關鍵字new。另外Spring的AOP,事務管理等等也會經常使用。
IOC:
控制反轉,是一種降低對象之間耦合關系的設計思想。如:租賃房屋,平常租房需要自己逐個小區尋找房屋,然后使用了IOC之后,即需找一個租房中介,把對房屋的需求告訴中介,就可以直接找到合適的房屋。即把需求交給了第三方,有第三方幫助完成需求,中介就相當于Spring容器。
AOP:
面向切面編程,是面向對象開發的一種補充,允許開發人員在不改變原來模型的基礎上動態的修改模型以滿足新的需求,如:動態的增加日志、安全或異常處理等。AOP使業務邏輯各部分間的耦合度降低,提高程序可重用性,提高開發效率。
** SpringMVC**
Spring MVC分離了控制器、模型對象、分派器以及處理程序對象的角色,更容易進行定制。
SpringMVC工作流程:
1.用戶向服務器發送請求,請求被Spring前端控制Servelt DispatcherServlet捕獲;
2.DispatcherServlet對請求URL進行解析,得到請求資源標識符(URI)。然后根據該URI,調用HandlerMapping獲得該Handler配置的所有相關的對象(包括Handler對象以及Handler對象對應的攔截器),最后以HandlerExecutionChain對象的形式返回;
3.DispatcherServlet 根據獲得的Handler,選擇一個合適的HandlerAdapter。(注:如果成功獲得HandlerAdapter后,此時將開始執行攔截器的preHandler(...)方法)
4.提取Request中的模型數據,填充Handler入參,開始執行Handler(Controller)。在填充Handler的入參過程中,根據你的配置,Spring將幫你做一些額外的工作:
HttpMessageConveter:將請求消息(如Json、xml等數據)轉換成一個對象,將對象轉換為指定的響應信息;
數據轉換:對請求消息進行數據轉換。如String轉換成Integer、Double等;
數據格式化:對請求消息進行數據格式化。如將字符串轉換成格式化數字或格式化日期等;
數據驗證:驗證數據的有效性(長度、格式等),驗證結果存儲到BindingResult或Error;
5.Handler執行完成后,向DispatcherServlet返回一個ModelAndView對象;
6.根據返回的ModelAndView,選擇一個適合的ViewResolver(必須是已經注冊到Spring容器中的 ViewResolver)返回給DispatcherServlet;
7.ViewResolver 結合Model和View,來渲染視圖;
8.將渲染結果返回給客戶端。
** MyBatis**
MyBatis是一個基于Java的持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的Java對象)映射成數據庫中的記錄。MyBatis是對Jdbc的封裝,讓數據庫底層操作變的透明。Mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個類對數據庫所需進行的sql語句映射。在每次與數據庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。
4.2實現流程
0.數據庫database-;
1.實體類com.pojo-,定義對象的屬性;
2.mapper-Mapper.xml(Mybatis),其中定義功能,對應要對數據庫進行的那些操作,比如insert、selectAll、selectByKey、delete、update等;
3.com.dao-Mapper.java,將Mapper.xml中的操作按照id映射成Java函數;
4.com.Service-Service.java,為控制層提供服務,接受控制層的參數,完成相應的功能,并返回給控制層;
5.com.controller-Controller.java,連接頁面請求和服務層,獲取頁面請求的參數,通過自動裝配,映射不同的URL到相應的處理函數,并獲取參數,對參數進行處理,之后傳給服務層;
6.Jsp-前端JSP頁面調用,請求哪些參數,需要獲取什么數據。
DataBase ===> pojo ===> Mapper.xml ===> dao ===> Service ===> controller ===> Jsp
4.3實現基本原理
SSM框架是Spring MVC ,Spring和MyBatis框架的整合,是標準的MVC模式,將整個系統劃分為表現層,Controller層,Service層,Dao層;
Spring MVC負責請求的轉發和視圖管理,負責controller和jsp的,也就是視圖層;
Spring實現業務對象管理,提供對象的,利用其IOC與AOP貫穿于整個項目。為各個層之間提供對象創建和注入,解耦合。比如我的這個項目提供了dao層的對象;
MyBatis作為數據對象的持久化引擎,負責數據庫的連接,與Spring整合后,配合Spring可提供dao層對象。
** 持久層:Dao層(mapper)**
Dao層:Dao層主要是做數據持久層的工作,負責與數據庫進行聯絡的一些任務都封裝在此,Dao層的設計首先是設計Dao的接口,然后在Spring的配置文件中定義此接口的實現類,然后就可在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪個類,顯得結構非常清晰,Dao層的數據源配置,以及有關數據庫連接的參數都在Spring的配置文件中進行配置。
**業務層:Service層**
Service層:Service層主要負責業務模塊的邏輯應用設計。首先設計接口,再設計其實現的類,接著再在Spring的配置文件中配置其實現的關聯。這樣我們就可以在應用中調用Service接口來進行業務處理。Service層的業務實現,具體要調用到已定義的DAO層的接口,封裝Service層的業務邏輯有利于通用的業務邏輯的獨立性和重復利用性,程序顯得非常簡潔。
**表現層:Controller層(Handler層)**
Controller層:Controller層負責具體的業務模塊流程的控制,在此層里面要調用Service層的接口來控制業務流程,控制的配置也同樣是在Spring的配置文件里面進行,針對具體的業務流程,會有不同的控制器,我們具體的設計過程中可以將流程進行抽象歸納,設計出可以重復利用的子單元流程模塊,這樣不僅使程序結構變得清晰,也大大減少了代碼量。
**View層:**
View層與控制層結合比較緊密,需要二者結合起來協同工發。View層主要負責前臺Jsp頁面的表示。
5
頁面展示
5.1登錄頁面
5.2注冊頁面
5.3主頁
5.4展示頁面
5.5新增頁面
5.6刪除頁面
5.7修改頁面
6
注意
1.MySQL 版本5.0以上與8.0以上配置有些許差異,需要調整,根據 jdbc.properties 文件中的提示,選擇合適的數據庫驅動 driver;
# MySQL 5.Xjdbc.driver=com.mysql.jdbc.Driver# MySQL 8.Xjdbc.driver=com.mysql.cj.jdbc.Driver
2.運行項目前提前配置好MySQL數據庫、Tomcat服務器、IDEA maven依賴庫;
3.本系統僅實現簡單功能,僅為更好理解SSM原理,需進一步完善更多功能及健壯性。
7
源碼
關注微信公眾號:Java爛筆頭
回復:SSM項目****
發布評論請先 登錄
相關推薦
評論