基于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,'用来刷题');

 


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>

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

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 方法的重写
}

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

    // 更新书
    public int updateBook(Book book);

    // 根据 id,返回一本书
    public Book queryBookById(int id);

    // 查询全部的书
    List<Book> queryAllBook()
  • 36
    点赞
  • 447
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值