001 图书增删改查 SSM MySQL

技术框架:Spring + SpringMVC + Mybatis + JSP + MySQL

001 图书增删改查 SSM MySQL

复制代码
package com.demo.controller;

import com.demo.pojo.Book;
import com.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@Controller
@RequestMapping("/books")
public class BookController {

    @Autowired
    private BookService bookService;

    //查询全部的书籍,并且返回到一个书籍展示
    @RequestMapping("allBook")
    public String list(Model model,Integer bookId) {
        List<Book> list = bookService.queryAllBooks(bookId);
        model.addAttribute("bookList", list);
        return "book";
    }

    //跳转到增加书籍页面
    @RequestMapping("/toAddBook")
    public String toAddPager() {
        return "addBook";
    }

    //添加书籍的请求
    @RequestMapping("/addBook")
    public String addBook(Book books) {
        bookService.addBook(books);
        return "redirect:/books/allBook";//重定向allBook请求
    }

    //跳转到修改书籍页面
    @RequestMapping("/toUpdate")
    public String toUpdatePager(int id, Model model) {
        Book books = bookService.findBookById(id);
        model.addAttribute("book", books);
        return "updateBook";
    }

    //修改书籍
    @RequestMapping("/updateBook")
    public String updateBook(Book books) {

        int i = bookService.updateBook(books);
        if (i > 0) {
            System.out.println("添加成功" + books);
        }
        return "redirect:/books/allBook";
    }

    //删除数据
    @RequestMapping("/deleteBook/{bookId}")
    public String deleteBook(@PathVariable("bookId") int id) {
        bookService.deleteBook(id);
        return "redirect:/books/allBook";
    }

}

package com.demo.dao;

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

import java.util.List;

public interface BookMapper {
    int addBook(Book book);
    int deleteBook( int id);
    int updateBook(Book book);
    Book findBookById(Integer id);
    List<Book> queryAllBook(@Param("bookId") Integer bookId);
}

package com.demo.pojo;

import lombok.Data;

@Data
public class Book {

    private Integer id;	//图书id

    private String name;		//图书名称

    private String press;		//出版社

    private String author;		//作者

}

package com.demo.service;
import com.demo.pojo.Book;

import java.util.List;

public interface BookService {
    Book findBookById(Integer id);
    List<Book> queryAllBooks(Integer bookId);
    int addBook(Book book);
    int updateBook(Book book);
    int deleteBook(Integer id);
}

package com.demo.service.impl;

import com.demo.dao.BookMapper;
import com.demo.pojo.Book;
import com.demo.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookServiceImpl implements BookService {

    private final BookMapper bookMapper;

    @Autowired
    public BookServiceImpl(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }

    @Override
    public Book findBookById(Integer id) {
        return bookMapper.findBookById(id);
    }

    @Override
    public List<Book> queryAllBooks(Integer bookId) {
        return bookMapper.queryAllBook(bookId);
    }

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

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

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

/*
 Navicat Premium Data Transfer

 Source Server         : 127.0.0.1(5.7.40)
 Source Server Type    : MySQL
 Source Server Version : 50740
 Source Host           : localhost:3305
 Source Schema         : ssm

 Target Server Type    : MySQL
 Target Server Version : 50740
 File Encoding         : 65001

 Date: 18/12/2023 21:10:14
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_book
-- ----------------------------
DROP TABLE IF EXISTS `tb_book`;
CREATE TABLE `tb_book`  (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `press` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `author` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of tb_book
-- ----------------------------
INSERT INTO `tb_book` VALUES (1, '12121', '212', '12121');

SET FOREIGN_KEY_CHECKS = 1;

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.demo.dao.BookMapper">
    <!-- 添加图书信息 -->
    <insert id="addBook" parameterType="com.demo.pojo.Book">
        insert into tb_book(name, press, author) values (#{name}, #{press}, #{author})
    </insert>

    <!-- 删除图书信息 -->
    <delete id="deleteBook" parameterType="int">
        delete from tb_book where id = #{id}
    </delete>

    <!-- 更新图书信息 -->
    <update id="updateBook" parameterType="com.demo.pojo.Book">
        update tb_book set name=#{name}, press=#{press}, author=#{author} where id=#{id}
    </update>

    <!-- 根据ID查询图书信息 -->
    <select id="findBookById" resultType="com.demo.pojo.Book">
        select * from tb_book where id = #{id}
    </select>

    <!-- 查询所有图书信息 -->
    <select id="queryAllBook" resultType="com.demo.pojo.Book">
        select * from tb_book
        <where>
            <if test="bookId != null">
                AND id = #{bookId}
            </if>
        </where>
    </select>
</mapper>
相关推荐
.Bryce.25 分钟前
你了解 Blackboard(黑板系统)吗?听说过基于黑板系统实现的智能体吗?
java·网络·gpt·php·agent·codex·黑板系统
猿究院_夏燊7 小时前
Spring Bean 生命周期
java·后端·spring
Wang's Blog8 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
信誓旦旦的程序猿8 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河8 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
Jlzn88888 小时前
华东电芯分选通道数怎么配才不堵线
java·人工智能·架构·自动化·制造
香吧香9 小时前
GRPC连接机制---长连接分析
java·网络与传输协议
我是人✓9 小时前
SpringBoot项目的五种创建方式
java·spring boot·后端
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 阿里云 OSS 入门案例:从创建 Bucket 到上传拿到可访问 URL
java·阿里云·交友
裕晟资质规划10 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全