SSM框架整合项目--管理系统

SSM框架整合项目--管理系统,第1张

SSM框架整合项目--管理系统 前言: 整合了Spring SpringMVC Mybatis的管理系统,期间遇到很多错误和bug,跟着狂神老师一起学习,不得不说,讲的真的好。我总结一下学习到的东西和遇到的错误。

目录: 1.框架的整合(准备工作) 2.dao层 service层  3.controller层和视图控制 4.前端界面

1.1 先看一下这个项目的结构

1.2 先创建数据库,这里就不多说了,就一张表,主键是bookID。

1.3 编写实体类和dao层的 *** 作

pojo实体类中,要有数据库相对应的属性和set,get方法。这是为了spring的bean的属性注入,将其放入IOC容器中,实现IOC,实现解耦。

dao层中有两个文件,一个是BookMapper接口 另一个就是BookMapper.xml文件,相当于是接口的实现类,其中包含所要从数据库执行 *** 作的sql语句,这些语句最终会通过mybatis的配置,用实现sqlsession的方法去携带mapper执行具体的sql *** 作业务.

1.4 service层主要是去调用dao层的方法,也就是BookMapper.xml写好的东西,如下所示

package com.chang.service;

import com.chang.dao.BookMapper;
import com.chang.pojo.Books;

import java.util.List;

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

    @Override
    public Books queryBookByName(String bookName) {
        return bookMapper.queryBookByName(bookName);
    }

}

 这些写完之后,要整合mybatis-spring-springMVC,就需要各种头疼的配置文件,负责持久层的mybatis相当于一个JDBC的加强,springMVC在Controller层相当于是一个加强的servlet,负责控制页面跳转,重定向之类的 *** 作。spring则将对象的创建统一管理,实现控制反转。

说实话,这些个配置文件,我也很迷但是我知道版本很关键,jdk的版本,springframework的版本,以及数据库mysql的版本都会影响到这些配置文件的编写,所以我这里用的是jdk14 mysql8.0

按下面这个配置文件走就可以,别的版本的可能数据库那里配置文件就要改一改了,不然会报500错误,jdbc连接错误什么的。注意要在控制台启动mysql服务。

 

 applicationContext.xml





    
    
    

 database.properties

 

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
jdbc.name=root
jdbc.password=123456

mybatis-config.xml





    
        
    
    
        
    



spring-dao.xml




    
    
    


    
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    
    
    
    
        
        
        
        
    

这里就是spring整合mybatis,这个整合完之后,就不用通过每次创建sqlsession对象去getMapper然后mapper.***去 *** 作数据库了,十分方便。

spring-mvc.xml




    
    
    
    
    

    
    
        
        
        
    
    
    

这里就整合了springMVC ,视图解析器,适配器,包括开启注解。这个整合完就不用写原始servlet代码了。后面的crud就可以通过controller层编写业务和视图控制跳转,在jsp页面编写对应的界面就好了  注意力可以就集中在这两个地方。

spring-service.xml




    
    

    
    
        
    
    
    
        
        
    

以上配置整合完毕后,就可以写controller类 来实现具体的业务 *** 作,再对应的编写视图.jsp

BookController

package com.chang.controller;

import com.chang.pojo.Books;
import com.chang.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.ArrayList;
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("/allBook"),
                                        //相当于是刷新出更新后的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";
    }

//查询书籍
    @RequestMapping("/queryBook")
    public String queryBook(String queryBookName,Model model){
       Books books= bookService.queryBookByName(queryBookName);
       List list = new ArrayList<>();
       list.add(books);

       if (books==null){
           list = bookService.queryAllBook();
           model.addAttribute("error","NULL");
       }
       model.addAttribute("list",list);
       return "allBook";
    }
}

视图部分:

allBook.jsp 

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



    书籍列表
    
    
    




    
        
            
                
                    书籍列表 —— 显示所有书籍
                
            
        
    
    
        
            <%--新增书籍--%>
            新增
                显示全部书籍

        
        
        
         <%--查询书籍--%>
             
        
    
    
        
            
                
                
                    书籍编号
                    书籍名字
                    书籍数量
                    书籍详情
                     *** 作
                
                
                
                
                    
                        ${book.bookID}
                        ${book.bookName}
                        ${book.bookCounts}
                        ${book.detail}
                        
                            更改 |
                            删除
                        
                    
                
                
            
        
    




addBook.jsp

<%--
  Created by IntelliJ IDEA.
  User: 84229
  Date: 2021/10/16
  Time: 16:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>



    新增书籍
    
    
    



    
        
            
                
                    新增书籍
                
            
        
    
    





updateBook.jsp

<%--
  Created by IntelliJ IDEA.
  User: 84229
  Date: 2021/10/16
  Time: 18:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>



    修改信息
    
    
    



    
        
            
                
                    修改信息
                
            
        
    
    





这些都搞完了之后就是配置汤姆猫,连接数据库,开始测试了,测试结果如下

 

 

如果想要扩展业务的话,只需要去dao层添加相应的方法,然后去service也去实现对应的方法。最后去controller里面通过BookService.(dao层方法)的方式调用dao层写好的方法。跳转到对应的页面,写好对应的jsp界面。具体流程如下:

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4659203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存