Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

佈告欄系統 Bulletin Board

一個以 Spring MVC + Hibernate 打造的公告管理系統,採經典三層式架構(Controller → Service → DAO),前端使用 Bootstrap 5 與 JSP,可打包為 WAR 部署於 Apache Tomcat。

本專案為一份完整的 Java Web 練習作品,涵蓋從 CRUD、檔案上傳到雲端部署的完整流程。


功能

  • 📋 公告列表(分頁、關鍵字搜尋)
  • ➕ 新增 / ✏️ 編輯 / 🗑️ 刪除公告
  • 📎 附件上傳與下載
  • 🗓️ 公告起訖日期、到期自動標示
  • 📝 CKEditor 5 富文本內容編輯

技術棧

層級 技術
前端 Bootstrap 5.3、JSP、JSTL、CKEditor 5
Web 框架 Spring MVC 5.3
ORM Hibernate 5.6
資料庫 MariaDB / MySQL 8
建構工具 Maven
應用伺服器 Apache Tomcat 9

專案結構

src/main/
├── java/com/bulletinboard/
│   ├── controller/   # 控制器層(接收 HTTP 請求)
│   ├── service/      # 服務層(業務邏輯、事務)
│   ├── dao/          # 資料存取層(Hibernate CRUD)
│   ├── model/        # 實體(對應 bulletin_board 資料表)
│   └── converter/    # 類型轉換器(String → LocalDate)
├── resources/        # applicationContext.xml、hibernate.cfg.xml
└── webapp/WEB-INF/
    ├── views/bulletin/   # list.jsp / form.jsp / view.jsp
    └── web.xml、dispatcher-servlet.xml

詳細架構與資料流程請見 ARCHITECTURE.md


快速開始

需求

  • JDK 8+
  • Maven 3.6+
  • MySQL / MariaDB
  • Apache Tomcat 9

1. 建立資料庫

CREATE DATABASE bulletin_board_system
  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE TABLE bulletin_board (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(200) NOT NULL,
    publisher VARCHAR(100) NOT NULL,
    publish_date DATE NOT NULL,
    end_date DATE NOT NULL,
    content TEXT NOT NULL,
    attachment_path VARCHAR(500),
    attachment_filename VARCHAR(255)
);

2. 設定資料庫連線

編輯 src/main/resources/hibernate.cfg.xml,填入你自己的連線資訊:

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bulletin_board_system?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Taipei</property>
<property name="hibernate.connection.username">你的帳號</property>
<property name="hibernate.connection.password">你的密碼</property>

⚠️ 請勿將真實帳密 commit 進版控。建議改用環境變數或 .gitignore 排除的本機設定檔。

3. 打包與部署

mvn clean package          # 產生 target/bulletin-board.war
# 將 war 複製到 Tomcat 的 webapps/ 後啟動 Tomcat

啟動後造訪:http://localhost:8080/bulletin-board/


後續可擴充方向

  • 升級到 Spring Boot + Spring Data JPA
  • 加入使用者權限與公告分類
  • Docker 容器化、CI/CD 自動部署
  • RESTful API 化

Java Web 練習作品 · Spring MVC + Hibernate · 2025

About

SpringMVC + Hibernate 佈告欄系統(公告 CRUD、附件上傳、分頁搜尋)| Java web bulletin board built with Spring MVC & Hibernate

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages