1 總體要求
總體任務(wù):整合 SpringMVC + Spring + MyBatis 框架,實現(xiàn)書城項目的增刪改查以及檢索功能。
網(wǎng)站架構(gòu)依然采用前端 JSP + 控制層 Controller + 業(yè)務(wù)層 Service + 持久層 Dao + 數(shù)據(jù)庫的形式。
其中:
- 數(shù)據(jù)庫由 MySQL 管理;
- MyBatis 作為 持久層用來操作數(shù)據(jù)庫;
- SpringMVC 作為控制層與前端就行數(shù)據(jù)交互;
- Spring 作為大雜燴托管持久層、業(yè)務(wù)層和控制層;
- 前端頁面使用了 Bootstrap 這個 JavaScript 框架進行編寫。
采用自底向上的設(shè)計流程,具體步驟如下:
- 數(shù)據(jù)庫表的創(chuàng)建;
- 基本環(huán)境搭建;
- Mybatis 層編寫;
- Spring 層編寫;
- SpringMVC 層編寫;
- 邏輯功能的編寫。
1.1 演示視頻
點擊:傳送門
?
2 數(shù)據(jù)庫的創(chuàng)建
# 其中 `ssmbook` 為該項目數(shù)據(jù)庫的名稱,`book` 為對應(yīng)的表名
CREATE DATABASE IF NOT EXISTS `ssmbook`;
USE `ssmbook`;
CREATE TABLE IF NOT EXISTS `book`(
`bookId` INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '書id',
`bookName` VARCHAR(100) NOT NULL COMMENT '書名',
`bookCount` INT(11) NOT NULL COMMENT '數(shù)量',
`detail` VARCHAR(200) NOT NULL COMMENT '描述'
)ENGINE=INNODB DEFAULT CHARSET=utf8;
USE `ssmbook`;
INSERT INTO `book`(`bookName`,`bookCount`,`detail`)VALUES
('人生',8,'作者為路遙,描述了一個人在人生各處的選擇'),
('高效能人士的七個習(xí)慣',10,'作者為史蒂芬,描述了普通人所需要的七個習(xí)慣'),
('劍指 Offer ',9,'用來刷題');
?
3 基本環(huán)境搭建
1 新建一個 Maven 普通項目,并將該項目添加 Web 支持。
2 導(dǎo)入相關(guān)的 Maven 依賴,對應(yīng)的 pom.xml 文件為:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sharm</groupId>
<artifactId>ssmbuild</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 經(jīng)過實踐證明,這段代碼確實是必須要寫的 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<java.version>11</java.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<!-- 導(dǎo)入依賴 -->
<dependencies>
<!--Junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--數(shù)據(jù)庫驅(qū)動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 數(shù)據(jù)庫連接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!--Servlet - JSP -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<!--Spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
</dependencies>
<!-- 靜態(tài)資源導(dǎo)出 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
3 建立基本結(jié)構(gòu)和配置框架
?
4 Mybatis 層編寫
該部分主要編寫底層業(yè)務(wù)邏輯。
1 編寫數(shù)據(jù)庫配置文件 database.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbook?useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.username=root
jdbc.password=123456
2 編寫數(shù)據(jù)庫對應(yīng)的實體類:sharm.pojo.Book文章來源:http://www.zghlxwxcb.cn/news/detail-451420.html
package sharm.pojo;
public class Book {
public int bookId;
public String bookName;
public int bookCount;
public String detail;
// 省略無參和有參構(gòu)造方法
// 省略各個屬性的 getter 和 setter 方法
// 省略 toString 方法的重寫
}
3 編寫 Dao 層的 Mapper 接口:sharm.dao.BookMapper文章來源地址http://www.zghlxwxcb.cn/news/detail-451420.html
package sharm.dao;
import org.apache.ibatis.annotations.Param;
import sharm.pojo.Book;
import java.util.List;
/**
* 接口約束的是方法
*/
public interface BookMapper {
// 增加一本書
public int addBook(Book book);
// 根據(jù) id 刪除一本書
// 好奇怪,明明對應(yīng)的 sql 語句是不返回內(nèi)容的,為什么還可以接收到 int 型的 1,難怪 SQL 語句執(zhí)行成功會返回 1
public int deleteBookById(int id);
// 更新書
到了這里,關(guān)于基于SSM框架的項目:圖書管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!