SpringMVC:整合SSM框架
创始人
2024-03-21 02:53:34

一、大致框架

1.建立数据库,并导入数据

create database cjgl; 
create table books(
bookID int(10) not null auto_increment comment '书id',
bookName varchar(100) not null comment '书名',
bookCounts int(11) not null comment '数量',
detail varchar(200) not null comment '描述',
key bookID(bookID)
)engine=innodb default charset=utf8
insert into books(bookID,bookName,bookCounts,detail)values
(1,'java',1,'从入门到放弃'),
(2,'MySQL',10,'从删库到跑路'),
(3,'Linux',5,'从进门到进牢');

2.新建maven项目SSMZH

鼠标右键点击SSMZH,添加框架框架支持

选中web应用程序点击确定

3.在pom.xml中导入相关的pom依赖!

 org.springframeworkspring-webmvc5.3.9org.springframeworkspring-jdbc5.3.9junitjunit4.13.2testmysqlmysql-connector-java8.0.17com.mchangec3p00.9.5.2javax.servletservlet-api2.5javax.servlet.jspjsp-api2.2javax.servletjstl1.2org.apache.tomcattomcat8.5.38pomorg.mybatismybatis3.5.6org.mybatismybatis-spring2.0.5src/main/java**/*.properties**/*.xmlfalsesrc/main/resources**/*.properties**/*.xmlfalseUTF-8

4.添加web模块, 添加web 支持

鼠标右键点击文件选择项目结构,选择工件,在可用元素中点击第一个按住shift在点击最后一个全选,点击鼠标右键,置于/WEB-INF/lib然后点击确定

5.建立基本结构和配置框架

  • yj.com.pojo

  • yj.com.mapper(dao)

  • yj.com.service

  • yj.com.controller

6.在pojo包下建立Books类(和数据库中的表相对应)

 Books中一个四个属性,与表中属性必须的相对应

全部代码如下:

package yj.com.pojo;
public class Books {private int bookID;private String bookName;private int bookCounts;private String detail;//添加无参构造、有参构造、getter/setter方法和tostring方法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;}@Overridepublic String toString() {return "Books{" +"bookID=" + bookID +", bookName='" + bookName + '\'' +", bookCounts=" + bookCounts +", detail='" + detail + '\'' +'}';}
}

7.在mapper包下建立接口BookMapper

创建相关操作

package yj.com.mapper;
import yj.com.pojo.Books;
import java.util.List;
public interface BookMapper{//增加一个Bookint addBook(Books books);//根据id删除一个Bookint deleteBookById(int id);//更新Bookint updateBook(Books books);//根据id查询,返回一个BookBooks queryBookById(int id);//查询全部Book,返回list集合List queryAllBook();
}

8.在mapper包下建立文件BookMapper.xml并配置



insert into cjgl.books(bookName,bookCounts,detail)values (#{bookName}, #{bookCounts}, #{detail})delete from cjgl.books where bookID=#{bookID}update cjgl.booksset bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}

 9.在service包下创建接口BookService作业务层

做的业务和dao层的一样

package yj.com.service;
import yj.com.pojo.Books;
import java.util.List;
public interface BookService {//增加一个Bookint addBook(Books books);//根据id删除一个Bookint deleteBookById(int id);//更新Bookint updateBook(Books books);//根据id查询,返回一个BookBooks queryBookById(int id);//查询全部Book,返回list集合List queryAllBook();
}

10.在service下创建类BookServiceImpl

package yj.com.service;
import yj.com.mapper.BookMapper;
import yj.com.pojo.Books;
import java.util.List;
//实现BookService 重写抽象方法
public class BookServiceImpl implements BookService{//服务层连接dao层//创建一个dao层对象private BookMapper bookMapper;public void setBookMapper(BookMapper bookMapper) {this.bookMapper = bookMapper;}public int addBook(Books books) {return bookMapper.addBook(books);}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();}
}

11.在controller包下创建BookController类

package yj.com.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import yj.com.service.BookService;
@Controller
@RequestMapping("/book")
public class BookController {//控制器调用Service层@Autowiredprivate BookService bookService;
}

服务层(BookService)调用dao层(BookMapper),dao层调用pojo,控制器调用服务层

二、开始建立配置文件

1.   在resource下建立数据库配置文件database.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cjgl?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=

2. 在resource下编写MyBatis核心配置文件mybatis-config.xml




3.整合dao层,resource下编写配置spring-dao.xml文件




4.Spring整合service层 , resource下编写配置spring-service.xml



此处正常有两处应该是红的,如果不是则前面有错误(文件没配置完所以报红)

5.整合前段 , resource下编写配置spring-mvc.xml



6.全局配置文件,resource下编写配置applicationContext.xml



三、配置前段

1.配置前段控制器(中央控制器)web.xml


DispatcherServletorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:applicationContext.xml1DispatcherServlet/CharacterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingutf-8CharacterEncodingFilter/*15

2.在文件WEB-INF下建立目录jsp,如下

3.配置index.jsp

<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/5Time: 15:12To change this template use File | Settings | File Templates.
--%>
<<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

首页


点击进入图书管理列表

 4.配置BookController

package yj.com.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import yj.com.pojo.Books;
import yj.com.service.BookService;
import java.util.List;
@Controller
@RequestMapping("/book")
public class BookController {//控制器调用Service层@Autowiredprivate BookService bookService;@RequestMapping("allBook")public String list(Model model) {List list = bookService.queryAllBook();model.addAttribute("list", list);return "allBook";}
}

5.在jsp目录下创建并配置文件allBook.jsp

<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/6Time: 9:59To change this template use File | Settings | File Templates.
--%>
<%@ 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()}更改 |删除

6.配置服务器

添加配置,点击加号,找到Tomcat Server 本地服务,名称随便什么,应用程序服务器如下tomcat233,部署配置如下点击加号,添加工件,应用程序上下文改为:“/”,然后确定

7.运行程序

8.实现添加功能。

在BookController下继续配置

@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";}

在jsp下创建配置addBook.jsp文件

<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/6Time: 10:13To change this template use File | Settings | File Templates.
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
新增书籍


新增书籍

书籍名称:


书籍数量:


书籍详情:


9.实现更新和删除功能

在BookController下继续配置

   @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("book",books);return "redirect:/book/allBook";}@RequestMapping("/del/{bookID}")public String deleteBook(@PathVariable("bookID") int id){bookService.deleteBookById(id);return "redirect:/book/allBook";}

在jsp下创建配置updateBook.jsp文件

<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/6Time: 10:24To change this template use File | Settings | File Templates.
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

修改信息


修改信息

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

注意:如果遇见这个问题,无法从底层数据库获取连接! 一般是一下几个问题:

  1. 驱动Jar包版本与注册驱动的类不匹配。
  2. 数据库连接地址有误。
  3. 数据库账户密码是否输入正确。
  4. 数据库,表,字段是否对应。
  5. 项目是否引入驱动包。

相关内容

热门资讯

最新或2023(历届)三严三实...  三严三实意见内容一:端正为政“官”念  修身用权律己不忘本色,谋事创业做人不辱使命,“三严三实”对...
最新或2023(历届)县委三严...   根据市纪委、市委组织部《关于开好“三严三实”专题民主生活会的通知》(许组文﹝最新或2023(历届...
最新或2023(历届)三严三实...   目前,市红十字会党的群众路线教育实践活动征求意见环节已告一段落,现将我会学习习总书记提出的“三严...
最新或2023(历届)三严三实...   1、做人不实,存在好人主义。在错误面前不敢坚持原则,对错误言论不敢理直气壮批驳,工作怕得罪人,搞...
最新或2023(历届)纤检局三...  最新或2023(历届)12月29日下午,省纤检局召开领导班子“三严三实”专题民主生活会。省局党组成...