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

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

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

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" %>



    书籍列表
    
    
    




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

        
        
        
         <%--查询书籍--%>
             
${error}
书籍编号 书籍名字 书籍数量 书籍详情 操作
${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界面。具体流程如下:

 

 

 

 

 

 

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

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

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