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

SSM框架整合---完成对图书数据表的增删改查

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

SSM框架整合---完成对图书数据表的增删改查

学习来源–>B站传送门–>【狂神说Java】SSM框架最新整合教学IDEA版

感谢狂神

ml
    • 1.先去创建数据表
    • 2. 创建maven普通项目,导入需要的依赖包
    • 3.mybatis层
      • entity
      • dao
      • service
    • 4.spring层
    • 5.springmvc
    • 6.查询书籍功能实现
    • 7.新增书籍实现
    • 8.修改图书信息
    • 9.删除图书信息
    • 10.查询图书信息

1.先去创建数据表

并且放入几条初始化数据

-- 创建数据库
CREATE DATAbase IF NOT EXISTS day20211018_booksms_db   CHARSET utf8;

-- 创建图书表;
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 '图书的描述',
 PRIMARY KEY `bookID` (`bookID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

-- 存放三条初始数据
INSERT  INTO `books`(`bookName`,`bookCounts`,`detail`)VALUES
('大话数据结构',1,'入门数据结构'),
('Java核心技术卷',10,'Java入门必看'),
('剑指Offer',5,'算法提升必看');
2. 创建maven普通项目,导入需要的依赖包

看下maven的地址对着没

pom.xml文件配置



    4.0.0

    com.xiaozhi
    booksms_byxiaozhire0
    1.0-SNAPSHOT

    
        
        
            junit
            junit
            4.12
        
        
        
            mysql
            mysql-connector-java
            8.0.22
        
        
        
            com.mchange
            c3p0
            0.9.5.2
        

        
        
            javax.servlet
            servlet-api
            2.5
        
        
        
            javax.servlet.jsp
            jsp-api
            2.2
        
        
        
            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
        
         
        
            org.aspectj
            aspectjweaver
            1.9.4
        
         
        
            org.projectlombok
            lombok
            1.18.20
        
    


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

3.mybatis层

先在resources目录下创建数据库配置文件database.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/day20211018_booksms_db?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456

在resources目录下创建mybatis核心配置文件mybatis-config.xml





    
    
        
    

    
    
        
    

    
    
        
    


entity

在entity包下创建实体类Books

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



//使用lombok的注解;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {
    
    private int bookID;
    
    private String bookName;
    
    private int bookCounts;
    
    private String detail;
}

注意,需要在idea的设置插件中安装lombok插件

dao

在dao包下创建持久层接口BookMapper

package com.xiaozhi.dao;

import com.xiaozhi.entity.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;


//图书管理持久层接口
public interface BookMapper {
    //查询所有的书;
    List findAllBooks();

    //根据ID查询图书;
    Books findBookById(@Param("bookID") int id);

    //添加书籍;
    int addBook(Books books);

    //删除书籍;
    int deleteBookById(@Param("bookID") int id);

    //更新图书;
    int updateBook(Books books);
}

dao包下创建映射文件配置BookMapper.xml






    
    
        select * from books where bookID=#{bookID}
    

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

    
    
        delete from books where bookID=#{bookID}
    
    
    
        update books set bookName=#{bookName} ,bookCounts=#{bookCounts},
        detail=#{detail}
        where bookID=#{bookID}
    


service

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

package com.xiaozhi.service;

import com.xiaozhi.entity.Books;

import java.util.List;


public interface BookService {
    //查询所有的书;
    List findAllBooks();

    //根据ID查询图书;
    Books findBookById(int id);

    //添加书籍;
    int addBook(Books books);

    //删除书籍;
    int deleteBookById(int id);

    //更新图书;
    int updateBook(Books books);
}

在service包下创建业务层接口的实现类BookServiceImpl

package com.xiaozhi.service;

import com.xiaozhi.dao.BookMapper;
import com.xiaozhi.entity.Books;

import java.util.List;


public class BookServiceImpl implements BookService{

    //调用持久层;
    private  BookMapper bookMapper;

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

    //查询所有图书
    public List findAllBooks() {
        return bookMapper.findAllBooks();
    }

    //根据Id查询图书;
    public Books findBookById(int id) {
        return bookMapper.findBookById(id);
    }

    //添加图书;
    public int addBook(Books books) {
        return bookMapper.addBook(books);
    }

    //根据Id删除图书;
    public int deleteBookById(int id) {
        return bookMapper.deleteBookById(id);
    }

    //更新图书;
    public int updateBook(Books books) {
        return bookMapper.updateBook(books);
    }
}
4.spring层

在resources目录下创建spring-dao.xml

spring 整合mybatis




  

开始编写




    
    
    

    
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
     

    
    
        
        
        
        
    

    
    
        
        
        
    
    

spring整合service
在resources目录下创建spring-service.xml




    

开始编写




    
    

    
    
        
    

    
    
        
        
    

5.springmvc

先去添加web支持

编写web.xml配置文件




    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext.xml
        
        
        1
    
    
        springmvc
        /
    
    
    
    
        encodeFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        encodeFilter
        
@Controller
@RequestMapping("/book")
public class BookController {
    //调用service;
    @Autowired
    @Qualifier("BookServiceImpl")
    public BookService bookService;

    //查询全部的图书,返回到图书展示;
    @RequestMapping("/findAllBook")
    public String bookList(Model model){
        //调用业务层方法查询所有图书;
        List allBooks = bookService.findAllBooks();
        model.addAttribute("allBooks",allBooks);
        return "findAllBook";
    }
}    

然后,在WEB-INF的jsp目录下创建findAllBook.jsp;

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


    图书列表



<%--新增图书--%>
添加图书
<%--用表格展示图书列表--%>

    <%--使用jstl标签的迭代用法,迭代存入的数据;--%>
    <%--items,需要迭代的数据 var,每次迭代取出的数据;varStatus;迭代的状态信息--%>
    
        
序号 图书名称 图书数量 图书简介
${sta.count} ${b.bookName} ${b.bookCounts} ${b.detail} 修改 删除

在index.jsp中简易放入跳转到图书列表的超链接;

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

  
    首页
  
  
  

查看图书列表

启动服务器;运行,查看效果;

7.新增书籍实现

在BookController控制层中添加方法;

package com.xiaozhi.controller;

import com.xiaozhi.entity.Books;
import com.xiaozhi.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.RequestMapping;

import java.util.List;


@Controller
@RequestMapping("/book")
public class BookController {
    //调用service;
    @Autowired
    @Qualifier("BookServiceImpl")
    public BookService bookService;

    //查询全部的图书,返回到图书展示;
    @RequestMapping("/findAllBook")
    public String bookList(Model model){
        //调用业务层方法查询所有图书;
        List allBooks = bookService.findAllBooks();
        model.addAttribute("allBooks",allBooks);
        return "findAllBook";
    }

    //转向到添加图书;
    @RequestMapping("/toAddBook")
    public String toAdd(){
        return "addBook";
    }

    //添加图书;
    @RequestMapping("/addBook")
    public String addBook(Books books){
        System.out.println("添加的图书为=>"+books);
        bookService.addBook(books);
        //转到图书列表;使用重定向;
        return "redirect:/book/findAllBook";
    }
}

在WEB-INF目录下的jsp中创建addBook.jsp;

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


    添加图书


书籍名称:
图书数量:
图书简介:

在findAllBook.jsp的超链接中添加跳转地址;

<%--新增图书--%>
添加图书

再次启动服务器,查看效果;

点击添加图书;

保存提交

8.修改图书信息

此时就涉及到事务的提交问题;需要对spring-service.xml添加新的配置;




    
    

    
    
        
    

    
    
        
        
    

    
    
        
        
        
            
        
    
    
    
        
        
    


在BookController控制层中添加方法;

package com.xiaozhi.controller;

import com.xiaozhi.entity.Books;
import com.xiaozhi.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.RequestMapping;

import java.util.List;


@Controller
@RequestMapping("/book")
public class BookController {
    //调用service;
    @Autowired
    @Qualifier("BookServiceImpl")
    public BookService bookService;

    //查询全部的图书,返回到图书展示;
    @RequestMapping("/findAllBook")
    public String bookList(Model model){
        //调用业务层方法查询所有图书;
        List allBooks = bookService.findAllBooks();
        model.addAttribute("allBooks",allBooks);
        return "findAllBook";
    }

    //转向到添加图书;
    @RequestMapping("/toAddBook")
    public String toAdd(){
        return "addBook";
    }

    //添加图书;
    @RequestMapping("/addBook")
    public String addBook(Books books){
        System.out.println("添加的图书为=>"+books);
        bookService.addBook(books);
        //转到图书列表;使用重定向;
        return "redirect:/book/findAllBook";
    }

    //转向修改图书;携带图书的ID参数;
    @RequestMapping("/toUpdate")
    public String toUpdate(int id,Model model){
        //调用业务层方法,根据Id查询图书的信息;
        Books bookById = bookService.findBookById(id);
        //将查询到的图书信息传递;
        model.addAttribute("wantBook",bookById);
        //转到图书修改页面;
        return "updateBook";
    }

    //修改图书处理;
    @RequestMapping("/updateBook")
    public String updateBook(Books books){
        System.out.println("更新的图书为=>"+books);
        //调用业务层方法修改图书;
        bookService.updateBook(books);
        return "redirect:/book/findAllBook";
    }
}

在WEB-INF目录的jsp目录下创建updateBook.jsp

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



    修改图书信息


<%--隐藏域放入要修改的图书Id--%>
书籍名称:
图书数量:
图书简介:

在findAllBook.jsp的修改超链接中添加跳转链接

修改

9.删除图书信息

在BookController控制层中添加方法;

package com.xiaozhi.controller;

import com.xiaozhi.entity.Books;
import com.xiaozhi.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.RequestMapping;

import java.util.List;


@Controller
@RequestMapping("/book")
public class BookController {
    //调用service;
    @Autowired
    @Qualifier("BookServiceImpl")
    public BookService bookService;

    //查询全部的图书,返回到图书展示;
    @RequestMapping("/findAllBook")
    public String bookList(Model model){
        //调用业务层方法查询所有图书;
        List allBooks = bookService.findAllBooks();
        model.addAttribute("allBooks",allBooks);
        return "findAllBook";
    }

    //转向到添加图书;
    @RequestMapping("/toAddBook")
    public String toAdd(){
        return "addBook";
    }

    //添加图书;
    @RequestMapping("/addBook")
    public String addBook(Books books){
        System.out.println("添加的图书为=>"+books);
        bookService.addBook(books);
        //转到图书列表;使用重定向;
        return "redirect:/book/findAllBook";
    }

    //转向修改图书;携带图书的ID参数;
    @RequestMapping("/toUpdate")
    public String toUpdate(int id,Model model){
        //调用业务层方法,根据Id查询图书的信息;
        Books bookById = bookService.findBookById(id);
        //将查询到的图书信息传递;
        model.addAttribute("wantBook",bookById);
        //转到图书修改页面;
        return "updateBook";
    }

    //修改图书处理;
    @RequestMapping("/updateBook")
    public String updateBook(Books books){
        System.out.println("更新的图书为=>"+books);
        //调用业务层方法修改图书;
        bookService.updateBook(books);
        return "redirect:/book/findAllBook";
    }

    //删除图书处理;
    @RequestMapping("/deleteBook/{bookId}")
    public String deleteBook(@PathVariable("bookId") int id){
        //调用业务层方法,根据Id删除图书;
        bookService.deleteBookById(id);
        //重定向到图书查询页面;
        return "redirect:/book/findAllBook";
    }
}

在findAllBook.jsp的删除超链接中添加跳转链接

删除

10.查询图书信息

在dao包下的BookMapper接口中添加方法;

//根据书名查询图书;
    Books findBookByName(@Param("bookName")String name);

在BookMapper.xml配置文件中编写对应的sql语句;

    

在service包下的BookService接口中添加方法

//根据书名查询图书;
    Books findBookByName(String name);

BookServiceImpl实现类添加方法实现

//根据图书的名称查询图书
    public Books findBookByName(String name) {
        return bookMapper.findBookByName(name);
    }

在controller包下的BookController中添加方法

//根据书名查询图书;
    @RequestMapping("/findBookByName")
    public String findBookByName(String findBookByName, Model model) {
        //调用业务层方法,根据书名查询图书;
        Books bookByName = bookService.findBookByName(findBookByName);
        //添加到集合中;
        List booksList = new ArrayList();
        booksList.add(bookByName);

        //若没有查询到图书;就查出全部图书;
        if (bookByName == null) {
            //给出提示信息;
            model.addAttribute("error", "不存在");
            booksList = bookService.findAllBooks();
        }

        model.addAttribute("allBooks", booksList);
        return "findAllBook";
    }

findAllBook.jsp添加对应的请求链接

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


    图书列表



<%--新增图书--%>
添加图书    
<%--返回到全部图书--%>
全部图书   
<%--查询图书--%>
${error}
<%--用表格展示图书列表--%> <%--使用jstl标签的迭代用法,迭代存入的数据;--%> <%--items,需要迭代的数据 var,每次迭代取出的数据;varStatus;迭代的状态信息--%>
序号 图书名称 图书数量 图书简介
${sta.count} ${b.bookName} ${b.bookCounts} ${b.detail} 修改 删除


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

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

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