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

【SpringMVC】整合SSM框架

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

【SpringMVC】整合SSM框架

一、闲话

五一假期来咯,前段时间也不知道在瞎忙啥,没有来继续写博客

二、基本要点

在完成了Spring、Mybatis以及SpringMVC框架的学习之后,我们现在就尝试将三个框架做一个整合

我们以一个图书馆系统的增删查改为例子进行分析

1、环境搭建

首先我们创建一个t_decade_book表,将我们要查询的数据先放入

create table t_decade_book
(
	`book_id` int(10) not null AUTO_INCREMENT comment '书id',
	`book_name` VARCHAr(100) NOT NULL comment '书名',
	`book_count` int(10) NOT null comment '数量',
	`detail` VARCHAr(200) NOT null comment '描述',
	primary key (`book_id`) using BTREE
) ENGINE=INNODB CHARACTER set = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;


insert into t_decade_book (book_id,book_name,book_count,detail)
values(1,'Java从入门到秃头', 20, 'Java学习'),
(2,'数据库从删库到跑路', 20, '数据库学习'),
(3,'测试从入职到干架', 20, '测试脚本学习');

新建maven项目,引入需要用到的依赖,以及在build中配置resources,防止我们资源导出失败



    4.0.0

    com.decade
    ssmbuild
    1.0-SNAPSHOT

    
        8
        8
    

    
        
        
            org.mybatis
            mybatis
            3.5.6
        
        
            org.mybatis
            mybatis-spring
            2.0.6
        
        
        
            mysql
            mysql-connector-java
            8.0.27
        
        
        
            junit
            junit
            4.13.1
            test
        
        
            com.mchange
            c3p0
            0.9.5.5
        
        
            org.projectlombok
            lombok
            1.18.22
            provided
        

        
        
            javax.servlet
            servlet-api
            2.5
        
        
            javax.servlet.jsp
            jsp-api
            2.2
        
        
            javax.servlet
            jstl
            1.2
        

        
            org.springframework
            spring-webmvc
            5.3.18
        
        
            org.springframework
            spring-jdbc
            5.3.13
        
    

    
    
        
            
                src/main/resources
                
                    ***.xml
                
                true
            
            
                src/main/java
                
                    ***.xml
                
                true
            
        
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    8
                    8
                
            
        
    

2、Mybatis层

首先我们要配置一个数据库配置文件db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/decade_test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root

然后编写mybatis核心配置文件mybatis-config.xml





    
        
    
    
        
    


编写对应实体类Book.java

package com.decade.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book {
    private int bookId;
    private String bookName;
    private int bookCount;
    private String detail;
}

service层,接口和对应实现类

package com.decade.service;

import com.decade.pojo.Book;

import java.util.List;

public interface BookService {

    int addBook(Book book);

    int updateBook(Book book);

    int deleteBook(int id);

    Book queryBookById(int id);

    List queryAllBook();

}
package com.decade.service;

import com.decade.dao.BookMapper;
import com.decade.pojo.Book;

import java.util.List;

public class BookServiceImpl implements BookService{

    private BookMapper bookMapper;

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

    @Override
    public int addBook(Book book) {
        return bookMapper.addBook(book);
    }

    @Override
    public int updateBook(Book book) {
        return bookMapper.updateBook(book);
    }

    @Override
    public int deleteBook(int id) {
        return bookMapper.deleteBook(id);
    }

    @Override
    public Book queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }

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

和dao层

package com.decade.dao;

import com.decade.pojo.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookMapper {

    int addBook(Book book);

    int updateBook(Book book);

    int deleteBook(@Param("bookId") int id);

    Book queryBookById(@Param("bookId") int id);

    List queryAllBook();
}

和对应的SQL映射文件





    
        
        
        
        
    

    
        insert into t_decade_book(book_name, book_count, detail)
        values (#{bookName}, #{bookCount}, #{detail})
    

    
        update t_decade_book set book_name = #{bookName}, book_count = #{bookCount}, detail = #{detail}
        where book_id = #{bookId}
    

    
        delete from t_decade_book where book_id = #{bookId}
    

    
        select * from t_decade_book
    


3、Spring层

参考之前的Spring整合Mybatis的博客 spring整合mybatis

创建spring-dao.xml来管理数据库连接信息,并绑定mybatis的配置文件mybatis-config.xml
这里我们使用c3p0连接数据库




    
    
    

    
    
        
        
        
        

        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
        
        
    

然后我们在spring-service.xml中整合Service层




    
    

    
        
    

    
    
        
        
    

4、SpringMVC层

老样子,我们先让当前项目为web项目,然后配置web.xml

注意我们这里配置DispatcherServlet时,不要配置springmvc的配置文件,而是要配置下面声明的总的配置文件applicationContext.xml




    
    
        DisPatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext.xml
        
        1
    
    
        DisPatcherServlet
        /
    

    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        CharacterEncodingFilter
        
    @RequestMapping(value = "/allBook")
    public String allBook(Model model) {
        List bookList = bookService.queryAllBook();
        model.addAttribute("list", bookList);
        return "allBook";
    }

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

    
    @RequestMapping(value = "/addBook")
    public String addBook(Book book) {
        bookService.addBook(book);
        // 新增完数据重定向到展示所有图书信息界面
        return "redirect:/book/allBook";
    }

    
    @RequestMapping(value = "/toUpdateBook")
    public String toUpdateBook(Model model, int id) {
        Book book = bookService.queryBookById(id);
        model.addAttribute("book", book);
        return "updateBook";
    }

    
    @RequestMapping(value = "/updateBook")
    public String updateBook(Book book) {
        bookService.updateBook(book);
        // 修改完数据重定向到展示所有图书信息界面
        return "redirect:/book/allBook";
    }

    
    @RequestMapping(value = "/delBook/{bookId}")
    public String delBook(@PathVariable("bookId") int bookId) {
        bookService.deleteBook(bookId);
        // 删除完数据重定向到展示所有图书信息界面
        return "redirect:/book/allBook";
    }
}

然后是相关的jsp页面,首先是首页index.jsp,我们只放置一个按钮,点击它查看所有书籍信息

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>



  首页
  




  点击进入列表页



展示所有书籍信息的页面allBook.jsp
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> 。
也就是取出部署的应用程序名或者是当前的项目名称

${requestScope.}获取request设置的属性值
requestScope通常是将某个变量或者对象在servlet或者action中通过request.setAttribute()方法放入到request对象中,然后在页面中使用requestScope来进行数据的显示的,获取方式如下:

${requestScope.xxx} 等价于<%=request.getAttribute(“xxx”)%>

<%@ 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.getBookCount()} ${book.getDetail()} 更改 | 删除

增加书籍页面addBook.jsp

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



    新增书籍
    
    
    



    
        
            
                
                    新增书籍
                
            
        
    
    
书籍名称:


书籍数量:


书籍详情:


修改书籍信息页面updateBook.jsp

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


    修改信息
    
    
    



    
        
            
                
                    修改信息
                
            
        
    
    
书籍名称: 书籍数量: 书籍详情:

项目的目录结构如下

最后我们启动tomcat进行验证,效果如图


大家可以测试一下增删查改这些功能,如有错误或者问题,欢迎在评论区指出,谢谢!

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

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

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