概要
在上一篇博客 新聞發布系統:需求分析以及項目的設計 我們對這個系統做了一個整體的分析。本篇的博客主要寫ssm環境搭建和數據庫的編碼。
SSM環境搭建
各種包的功能 :
entity包:里面的類主要的作用是實體類,與數據庫中的表一一對應的。
dao包:數據庫操作的接口,對表的增刪改查等功能。
service包:主要是邏輯層的代碼,業務邏輯相關。
web包(大多數定義的是controller層)主要是與前后端的數據交互處理的功能。
mapper文件夾主要是與dao層接口對應的具體的sql語句,一個dao接口對應一個mapper文件。
mybatis是存放的mybatis配置文件。
spring文件夾存放spring、springmvc相關的配置文件。
以上的各個包和文件夾,是在配置ssm的時候掃描指定的目錄,包名、文件夾名可以不一樣,但是在配置中需要做相應的更改。
注:ssm的掃描結構是:resources中的配置文件配置掃描java中的包信息和ssm的基礎配置信息。
web.xml中掃描resources中配置文件的配置信息。
mybatis的環境搭建
mybatis配置的基礎目錄。
dao包和mapper對應關系:
但是實現方式也可以直接在接口函數上添加注解寫Sql語句,這個方式比較簡單,但是sql語句過於復雜的時候會變得冗長。
mybatis和spring整合
掃描包結構示意圖。
dao、entity、mapper、mybatis掃描示意圖。
service層的包掃描示意圖
springmvc配置以及web層的掃描
在很多情況下:post提交會出現亂碼,我們在web.xml中配置過濾器,一勞永逸。
這個ssm的配置這個是比較簡單,我在Github中已經建立了一個完整的ssm基礎框架,下載只需要將jdbc.properties數據庫的數據修改成自己的就可以使用了。
ssm基礎框架的地址:https://github.com/fireshoot/ssm_Configuration。
數據庫的編碼
根據上一篇博客新聞發布系統:需求分析以及項目的設計的表設計來創建數據庫表
User表:
--數據庫初始化腳本
--創建數據庫
CREATE database news;
--使用數據庫
USE news;
--創建新聞系統的用戶
CREATE TABLE user(
`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用戶名id',
`user_type` bigint NOT NULL COMMENT '用戶類別,0:表示普通用戶;1:認證用戶;2:管理員',
`user_password` VARCHAR(120) NOT NULL COMMENT '用戶密碼',
`user_name` VARCHAR(120) NOT NULL COMMENT '用戶昵稱',
`user_email` VARCHAR (20) NOT NULL COMMENT '郵箱',
`user_age` SMALLINT COMMENT '年齡',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
PRIMARY KEY (user_id),
KEY idx_user_id(user_id),
KEY idx_user_type(user_type),
KEY idx_create_time(create_time)
)engine=InnoDB auto_INCREMENT=1000 DEFAULT CHARSET=utf8 comment='用戶表';
news新聞表
--創建新聞表
CREATE TABLE new(
`new_id` bigint NOT NULL AUTO_INCREMENT COMMENT '新聞id',
`category_id` bigint NOT NULL COMMENT '類別id',
`user_id` bigint NOT NULL COMMENT '作者的id',
`title` VARCHAR (100) NOT NULL COMMENT '新聞標題',
`content` TEXT NOT NULL COMMENT '新聞內容',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
`key_words` VARCHAR (120) COMMENT '新聞關鍵字',
PRIMARY KEY (new_id,category_id,user_id),
KEY idx_create_time(create_time)
)engine=InnoDB DEFAULT CHARSET=utf8 comment='新聞表';
comment評論表和category類別表。
--創建評論表
CREATE TABLE new_comment(
`comment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '評論id',
`new_id` bigint NOT NULL COMMENT '新聞的id',
`user_id` bigint NOT NULL COMMENT '評論者的id',
`content` TEXT NOT NULL COMMENT '評論內容',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
PRIMARY KEY(comment_id,new_id,user_id),
KEY idx_create_time(create_time)
)engine=InnoDB DEFAULT CHARSET=utf8 comment='評論表';
--創建類別表
CREATE TABLE category(
`category_id` bigint NOT NULL AUTO_INCREMENT COMMENT '類別id',
`category_name` VARCHAR (120) NOT NULL COMMENT '類別名稱',
PRIMARY KEY(category_id)
)engine=InnoDB DEFAULT CHARSET=utf8 comment='類別表';
結語
本次實現了smm的搭建和數據庫的編碼,ssm的搭建其實也就是dao、service、web層的配置調用;在web.xml中添加過濾器對后期post提交亂碼的解決。
ssm搭好的基礎框架地址:https://github.com/fireshoot/ssm_Configuration
本項目地址:https://github.com/fireshoot/YxNews