首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JavaWeb 學習筆記:MVC 設計模式與三層架構實戰心得

     編輯:Java 綜合教學

JavaWeb 學習筆記:MVC 設計模式與三層架構實戰心得

重溫 JavaWeb 基礎,從資料庫連接池到 DButils,再到 MVC 三層架構實戰,這段過程讓我對「程式是構造出來的,不是編出來的」有了具體體悟。本文記錄學習心得與架構理解。

一、資料庫連接池:DBCP 與 C3P0 實戰配置

DBCP 兩種使用方式

// 方式一:程式碼配置
BasicDataSource source = new BasicDataSource();
source.setDriverClassName("com.mysql.jdbc.Driver");
source.setUrl("jdbc:mysql:///day11");
source.setUsername("root");
source.setPassword("root");

// 方式二:屬性檔配置(推薦)
Properties prop = new Properties();
prop.load(new FileReader("dbcp.properties"));
BasicDataSourceFactory factory = new BasicDataSourceFactory();
DataSource source = factory.createDataSource(prop);

dbcp.properties 關鍵配置:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///day11
username=root
password=root
initialSize=10
maxActive=50
maxIdle=20
minIdle=5
maxWait=60000

C3P0 配置方式

// 方式一:程式碼配置
ComboPooledDataSource source = new ComboPooledDataSource();
source.setDriverClass("com.mysql.jdbc.Driver");
source.setJdbcUrl("jdbc:mysql:///day11");
source.setUser("root");
source.setPassword("root");

// 方式二:c3p0-config.xml 配置
// 放在 classpath 下

二、DButils:資料庫操作的極致簡化

QueryRunner 核心方法:

  • update():增刪改,簡單直接
  • query() + ResultSetHandler:查詢,策略模式處理結果集

常用 ResultSetHandler:

處理器用途回傳型別
BeanHandler單筆映射為 JavaBeanT
BeanListHandler多筆映射為 JavaBean 列表List<T>
MapHandler單筆映射為 MapMap<String, Object>
MapListHandler多筆映射為 Map 列表List<Map>
ScalarHandler單一值(count、max 等)Object

泛型設計讓結果處理極具彈性,封裝思想體現得淋漓盡致:重複邏輯下沉框架,業務層專注核心邏輯。

三、MVC 設計模式:大白話理解

角色比喻:餐廳系統

  • V(View)- 桌子:用戶看到並互動的介面(JSP 頁面)
  • C(Controller)- 總管:接收需求、協調資源、回應結果
  • M(Model)- 傭人:具體執行業務邏輯(買菜、做飯)

流程:用戶(你)餓了 → 總管接收需求 → 傭人買菜做飯 → 總管端上桌子 → 用戶享用

相對獨立的意義:

  • 傭人換人(業務邏輯修改)→ 總管、桌子無影響
  • 總管換人(控制邏輯修改)→ 傭人繼續做飯、桌子不變
  • 若總管跑去做飯(Controller 滲透業務)→ 總管生病時系統癱瘓

四、JavaWeb 經典三層架構

基於 MVC 擴展:

層級組件職責對應 MVC
Web 層JSP + Servlet請求接收、響應渲染、流程控制V + C
Service 層Service 介面/實作核心業務邏輯、交易管理M(業務邏輯)
DAO 層DAO 介面/實作資料存取、SQL 執行M(資料存取)

分層演進邏輯:

  1. 最初 Model 單一類別承擔所有業務與資料存取
  2. 業務複雜度上升,拆分為 Service(業務)+ DAO(資料)
  3. Web 層僅負責 HTTP 協議轉換與流程調度
  4. 各層透過介面依賴,實現低耦合、高內聚

五、實戰案例:客戶管理系統

功能:客戶增刪改查、分頁、條件搜尋

架構落地:

  • JSP:表單展示、列表渲染
  • Servlet:參數接收、調用 Service、轉發/重導向
  • Service:業務規則驗證、交易邊界控制
  • DAO:CRUD SQL 執行、DButils 映射

六、核心心得

  1. 先思考再動手:架構設計優於程式碼實作
  2. 分層解耦:單一職責、介面依賴、便於測試與維護
  3. 工具選型:DButils 等成熟框架解決重複造輪子
  4. 計算思維:將複雜問題分解為可管理的子問題

「程式是構造出來的」——結構與思維是骨架,細節是血肉。掌握 MVC 與三層架構,不只是學會一種技術,更是建立了解決複雜問題的系統性思維框架。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved