当前位置:   article > 正文

基于SSM框架的项目:图书管理系统

基于ssm框架的项目

1 总体要求

总体任务:整合 SpringMVC + Spring + MyBatis 框架,实现书城项目的增删改查以及检索功能。

网站架构依然采用前端 JSP + 控制层 Controller + 业务层 Service + 持久层 Dao + 数据库的形式。

其中:

  • 数据库由 MySQL 管理;
  • MyBatis 作为 持久层用来操作数据库;
  • SpringMVC 作为控制层与前端就行数据交互;
  • Spring 作为大杂烩托管持久层、业务层和控制层;
  • 前端页面使用了 Bootstrap 这个 JavaScript 框架进行编写。

采用自底向上的设计流程,具体步骤如下:

  1. 数据库表的创建;
  2. 基本环境搭建;
  3. Mybatis 层编写;
  4. Spring 层编写;
  5. SpringMVC 层编写;
  6. 逻辑功能的编写。

1.1 演示视频

点击:传送门

 


2 数据库的创建

# 其中 `ssmbook` 为该项目数据库的名称,`book` 为对应的表名
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 '数量',
     `detail` VARCHAR(200) NOT NULL COMMENT '描述'
)ENGINE=INNODB DEFAULT CHARSET=utf8;

USE `ssmbook`;
INSERT  INTO `book`(`bookName`,`bookCount`,`detail`)VALUES
('人生',8,'作者为路遥,描述了一个人在人生各处的选择'),
('高效能人士的七个习惯',10,'作者为史蒂芬,描述了普通人所需要的七个习惯'),
('剑指 Offer ',9,'用来刷题');
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

 


3 基本环境搭建

1 新建一个 Maven 普通项目,并将该项目添加 Web 支持。

2 导入相关的 Maven 依赖,对应的 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>

    <!-- 经过实践证明,这段代码确实是必须要写的 -->
    <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>

    <!-- 导入依赖 -->
    <dependencies>
        <!--Junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- 数据库连接池 -->
        <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>

    <!-- 静态资源导出 -->
    <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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105

3 建立基本结构和配置框架

请添加图片描述
 


4 Mybatis 层编写

该部分主要编写底层业务逻辑。

1 编写数据库配置文件 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
  • 1
  • 2
  • 3
  • 4

2 编写数据库对应的实体类:sharm.pojo.Book

package sharm.pojo;

public class Book {
   
    public int bookId;
    public String bookName;
    public int bookCount;
    public String detail;
    
    // 省略无参和有参构造方法
    // 省略各个属性的 getter 和 setter 方法
    // 省略 toString 方法的重写
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3 编写 Dao 层的 Mapper 接口:sharm.dao.BookMapper

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);

    // 根据 id 删除一本书
    // 好奇怪,明明对应的 sql 语句是不返回内容的,为什么还可以接收到 int 型的 1,难怪 SQL 语句执行成功会返回 1
    public int deleteBookById(int id);

    // 更新书
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/301533
推荐阅读
相关标签
  

闽ICP备14008679号