栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

狂神SSM项目整合(含完整代码免费)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

狂神SSM项目整合(含完整代码免费)

这几天看了BiliBili上的狂神的视频,跟着做,并且跑通了这个SSM小demo,故著文章以记之!

文章将会讲述一步一步实现了逻辑,最后会附上完整的源码。

【狂神说Java】SSM框架最新整合教学IDEA版_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1RE41127rv?p=1

我们按照狂神讲课的思路来实现!

---------------------------------------目录---------------------------------------

环境配置

项目的骨架

运行示例图

SSM整合详细步骤

(1)创建数据库表

(2)配置Maven地址

(3)导入pom.xml

(4)applicationContext.xml

(5)database.properties

(6)编写pojo的books实体类

(7)编写dao层(持久层)

BookMapper

BookMapper.xml

mybatis-config.xml

(8)spring-dao.xml

(9)业务层

BookService

BookServiceImpl

spring-service.xml

(10)web.xml

(11)spring-mvc.xml

(12)控制层

BookController

(13)前端页面

addBook.jsp

allBook.jsp

updateBook.jsp 

完整代码


环境配置

编译器:IDEA

MySQL:8.0(相较于5.7要配置一下时区!)

Tomcat:8.5

Maven:3.6.1

项目的骨架

运行示例图

SSM整合详细步骤

(1)创建数据库表

这里我就直接贴代码了,该代码是由Navicat根据我之前创建的SQL表导出的!

数据库名为:ssmbuild

数据库只有一张表:books


SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for books
-- ----------------------------
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books`  (
  `bookID` int(0) NOT NULL AUTO_INCREMENT COMMENT '书id',
  `bookName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '书名',
  `bookCounts` int(0) NOT NULL COMMENT '数量',
  `detail` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '描述',
  INDEX `bookID`(`bookID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of books
-- ----------------------------
INSERT INTO `books` VALUES (1, 'Java', 1, '从入门到放弃');
INSERT INTO `books` VALUES (2, 'MySQL', 10, '从删库到跑路');
INSERT INTO `books` VALUES (3, 'Linux', 5, '从进门到进牢');
INSERT INTO `books` VALUES (4, 'Java', 1000, '入门放弃');
INSERT INTO `books` VALUES (5, 'Java', 1000, '入门放弃');

SET FOREIGN_KEY_CHECKS = 1;

(2)配置Maven地址

将Maven地址配置为自己本地安装的。

建议将这个勾选上!否则可能会出一些gaygay的错误!

(3)导入pom.xml



    4.0.0

    com.edu
    ssmbuild
    1.0-SNAPSHOT
    war

    ssmbuild Maven Webapp
    
    http://www.example.com

    
        UTF-8
        1.7
        1.7
    

    
        
            junit
            junit
            4.11
            test
        
        
        
            mysql
            mysql-connector-java
            8.0.16
        
        
        
            com.mchange
            c3p0
            0.9.5.2
        

        
        
            javax.servlet
            servlet-api
            2.5
            provided
        
        
            javax.servlet.jsp
            jsp-api
            2.2
            provided
        

        
            javax.servlet
            jstl
            1.2
        

        
        
            org.mybatis
            mybatis
            3.5.2
        
        
            org.mybatis
            mybatis-spring
            2.0.2
        

        
        
            org.springframework
            spring-webmvc
            5.1.9.RELEASE
        
        
            org.springframework
            spring-jdbc
            5.1.9.RELEASE
        

    

    
        
        
        
            
                src/main/java
                
                    ***.xml
                
                false
            
            
                src/main/resources
                
                    ***.xml
                
                false
            
        

        ssmbuild
        
            
                
                
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    2.1
                    
                        80
                        /
                    
                
            
        
    

注:这里使用的是Maven中的tomcat插件去运行的!所以要配置一下, 当然也可以使用Tomcat服务器。

使用Maven的tomcat插件需要在pom中配置和运行框tomcat7:run(如下图)

(4)applicationContext.xml

实现说明一下,本项目将为每一层设置配置文件——持久层spring-dao.xml、业务层spring-service.xml、表现层spring-mvc.xml,在applicationContext.xml中引入




    
    
    

(5)database.properties

数据库连接的基本信息

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useUnicode=true&useJDBCCompliantTimezoneShift=true&serverTimezone=UTC&characterEncoding=utf8
jdbc.username=root
jdbc.password=888888

(6)编写pojo的books实体类

根据数据库的字段,设置getter、setter、toString方法。

package com.Harmony.pojo;

public class Books {

    private int bookID;
    private String bookName;
    private int bookCounts;
    private String detail;
    @Override
    public String toString() {
        return "Books{" +
                "bookID=" + bookID +
                ", bookName='" + bookName + ''' +
                ", bookCounts=" + bookCounts +
                ", detail='" + detail + ''' +
                '}';
    }
    public Books() {
    }

    public Books(int bookID, String bookName, int bookCounts, String detail) {
        this.bookID = bookID;
        this.bookName = bookName;
        this.bookCounts = bookCounts;
        this.detail = detail;
    }
    public int getBookID() {
        return bookID;
    }

    public void setBookID(int bookID) {
        this.bookID = bookID;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public int getBookCounts() {
        return bookCounts;
    }

    public void setBookCounts(int bookCounts) {
        this.bookCounts = bookCounts;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

}

(7)编写dao层(持久层)

BookMapper

编写Book类的接口,定义mybatis层的方法

public interface BookMapper {

    //增加一个Book
    int addBook(Books book);

    //根据id删除一个Book
    int deleteBookById(@Param("bookId") int id);

    //更新Book
    int updateBook(Books books);

    //根据id查询,返回一个Book
    Books queryBookById(@Param("bookId") int id);

    //查询全部Book,返回list集合
    List queryAllBook();
}

注:这里的@Param注解,可以理解为给id取别名为bookId,在BookMapper.xml中就可以使用bookId

BookMapper.xml





    
    
        insert into ssmbuild.books(bookName,bookCounts,detail)
        values (#{bookName}, #{bookCounts}, #{detail})
    

    
    
        delete from ssmbuild.books where bookID=#{bookId}
    

    
    
        update ssmbuild.books
        set bookName = #{bookName},bookCounts = #{bookCounts},detail = #{detail}
        where bookID = #{bookID}
    

    
    
        SELECT * from ssmbuild.books
    

mybatis-config.xml

本来mybatis要配置数据源的,但是这里与spring整合后就将此步骤放在了spring中去做!即:spring-dao.xml文件中!

这里的mybatis-config.xml配置文件只要做两件事:

  1. typeAliases指向实体类pojo
  2. 配置相关映射文件地址,即mapper地址。




    
        
    
    
        
    

(8)spring-dao.xml

mybatis框架如果独立使用的话应该将下述数据库的配置写在mybatis-config.xml中,但是这里是Spring整合MyBatis,所以建议将其写在spring-dao.xml(spirng)中。

  1. 关联数据库配置文件
  2. 连接池(这里是使用c3p0)
  3. 配置SqlSessionFactory对象
  4. 配置扫描Dao接口包,动态实现Dao接口注入到spring容器中



    
    
    

    
    
    
        
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
        
        
    

(9)业务层

BookService
//BookService:底下需要去实现,调用dao层
public interface BookService {
    //增加一个Book
    int addBook(Books book);
    //根据id删除一个Book
    int deleteBookById(int id);
    //更新Book
    int updateBook(Books books);
    //根据id查询,返回一个Book
    Books queryBookById(int id);
    //查询全部Book,返回list集合
    List queryAllBook();
}

BookServiceImpl
package com.Harmony.service;

import com.Harmony.dao.BookMapper;
import com.Harmony.pojo.Books;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class BookServiceImpl implements BookService {

    //调用dao层的操作,设置一个set接口,方便Spring管理
    private BookMapper bookMapper;

    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }

    public int addBook(Books book) {
        return bookMapper.addBook(book);
    }

    public int deleteBookById(int id) {
        return bookMapper.deleteBookById(id);
    }

    public int updateBook(Books books) {
        return bookMapper.updateBook(books);
    }

    public Books queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }

    public List queryAllBook() {
        return bookMapper.queryAllBook();
    }
}

spring-service.xml



    
    

    
    
        
    

    
    
        
        
    

(10)web.xml

SpringMVC项目:

  1. DispatchServlet
  2. 乱码过滤
  3. (补充)Session保证安全



    Archetype Created Web Application
    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext.xml
        
        1
    
    
        DispatcherServlet
        /
    

    
    
        encodingFilter
        
            org.springframework.web.filter.CharacterEncodingFilter
        
        
            encoding
            utf-8
        
    
    
        encodingFilter
        /*
    

    
    
        15
    
    

(11)spring-mvc.xml

spring-mvc.xml配置文件:

  1. 注解驱动
  2. 静态资源过滤
  3. 视图解析器
  4. 扫描包:controller



    
    
    
    
    
    
    
        
        
        
    

    
    

(12)控制层

BookController
package com.Harmony.controller;

import com.Harmony.pojo.Books;
import com.Harmony.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
@RequestMapping("/book")
public class BookController {

    @Autowired
    @Qualifier("BookServiceImpl")
    private BookService bookService;

    @RequestMapping("/allBook")
    public String list(Model model) {
        List list = bookService.queryAllBook();
        model.addAttribute("list", list);
        return "allBook";
    }

    @RequestMapping("/toAddBook")
    public String toAddPaper() {
        return "addBook";
    }

    @RequestMapping("/addBook")
    public String addPaper(Books books) {
        System.out.println(books);
        bookService.addBook(books);
        return "redirect:/book/allBook";
    }

    @RequestMapping("/toUpdateBook")
    public String toUpdateBook(Model model, int id) {
        Books books = bookService.queryBookById(id);
        System.out.println(books);
        model.addAttribute("book",books );
        return "updateBook";
    }

    @RequestMapping("/updateBook")
    public String updateBook(Model model, Books book) {
        System.out.println(book);
        bookService.updateBook(book);
        Books books = bookService.queryBookById(book.getBookID());
        model.addAttribute("books", books);
        return "redirect:/book/allBook";
    }
    @RequestMapping("/del/{bookId}")
    public String deleteBook(@PathVariable("bookId") int id) {
        bookService.deleteBookById(id);
        return "redirect:/book/allBook";
    }
}

(13)前端页面

addBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>



    新增书籍
    
    
    




    
        
            
                
                    新增书籍
                
            
        
    
    
书籍名称:


书籍数量:


书籍详情:


allBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    书籍列表
    
    
    





    
        
            
                
                    书籍列表 —— 显示所有书籍
                
            
        
    

    
        
            新增
        
    

    
        
            
                    
书籍编号 书籍名字 书籍数量 书籍详情 操作
${book.getBookID()} ${book.getBookName()} ${book.getBookCounts()} ${book.getDetail()} 更改 | 删除

updateBook.jsp 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    修改信息
    
    
    




    
        
            
                
                    修改信息
                
            
        
    

    
书籍名称: 书籍数量: 书籍详情:

完整代码

链接:https://pan.baidu.com/s/1X-wdmckju-4oNiNnmKRhjQ 
提取码:ctqr 
--来自百度网盘超级会员V3的分享

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841967.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号