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 {@Autowiredprivate 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;	//图书idprivate 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;@Autowiredpublic BookServiceImpl(BookMapper bookMapper) {this.bookMapper = bookMapper;}@Overridepublic Book findBookById(Integer id) {return bookMapper.findBookById(id);}@Overridepublic List<Book> queryAllBooks(Integer bookId) {return bookMapper.queryAllBook(bookId);}@Overridepublic int addBook(Book book) {return bookMapper.addBook(book);}@Overridepublic int updateBook(Book book) {return bookMapper.updateBook(book);}@Overridepublic int deleteBook(Integer id) {return bookMapper.deleteBook(id);}
}
/*Navicat Premium Data TransferSource Server         : 127.0.0.1(5.7.40)Source Server Type    : MySQLSource Server Version : 50740Source Host           : localhost:3305Source Schema         : ssmTarget Server Type    : MySQLTarget Server Version : 50740File Encoding         : 65001Date: 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 mapperPUBLIC "-//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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/296780.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python自己写了一个Renpy 汉化插件

之前看了很多教程都是Renpy怎么解包、怎么创建翻译文件&#xff0c;对翻译过程没有过多讲解&#xff0c;就根据翻译文件写了一个小程序&#xff0c;如果需要的可以自行下载使用。 使用方法&#xff1a; 1.按照正常unrpa的解包方式renpy进行解包&#xff1b; 2.使用renpy-sdk…

常见的Ubuntu命令30条(一)

Ubuntu命令是指在Ubuntu操作系统中用于执行各种任务和操作的命令行指令。这些命令可以用于管理系统、配置网络、安装软件、浏览文件等。Ubuntu命令通常在终端&#xff08;Terminal&#xff09;应用程序中输入并执行。 在Ubuntu中&#xff0c;有许多常用的命令和指令。以下是一…

Epson打印机连接wifi

环境 Epson L3153 打印机联通无线光猫 背景 最近家里的联通宽带不太稳定&#xff0c;经常断网。今天打了联通客服电话&#xff0c;师傅上门来&#xff0c;说可能是光猫用的时间太长了&#xff0c;换了一个新的联通光猫&#xff0c;问题解决。 wifi的名称是 CU_Y3ft 和 CU_Y3…

FPGA高端项目:UltraScale GTH + SDI 视频编解码,SDI无缓存回环输出,提供2套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 GT 高速接口解决方案我目前已有的SDI编解码方案 3、详细设计方案设计框图3G-SDI摄像头LMH0384均衡EQUltraScale GTH 的SDI模式应用UltraScale GTH 基本结构参考时钟的选择和分配UltraScale GTH 发送和接收处理流程UltraScale…

全面理解Stable Diffusion采样器

全面理解Stable Diffusion采样器 原文&#xff1a;Stable Diffusion Samplers: A Comprehensive Guide 在 AUTOMATIC1111 的 SD webui 中&#xff0c;有许多采样器&#xff08;sampler&#xff09;&#xff0c;如 Euler a&#xff0c;Heun&#xff0c;DDIM&#xff0c;… 什么是…

宽带阻抗匹配的工程实现-第一步,端口驻波仿真

概要 ADS仿真&#xff0c;Matlab仿真&#xff0c;宽带阻抗匹配&#xff0c;smith圆图。 其实阻抗匹配我工作以来经常说&#xff0c;也经常做&#xff0c;但是基本上都是直接在印制板上进行调试。现在想先用仿真软件直接设计出来&#xff0c;才发现很多东西嘴上说容易&#xf…

LeetCode刷题--- 组合总和

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述递归递归、搜…

c#委托学习笔记1

委托三步骤 第一步&#xff1a;定义委托 //第一步&#xff1a;1 声明委托(定义委托) //对于声明委托的解释如下&#xff1a; //解释a&#xff1a;函数指针 //解释b&#xff1a;委托就是定义函数的形状&#xff08;形态&#xff09; // 即&#xff1a;返回值类型&#x…

4.svn版本管理工具使用

1. 什么是SVN 版本控制 它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节! Subversion(简称SVN)是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空 SVN的优势 统一的版本号 Subversi…

XG-PON的传输受限距离如何计算

1 概述 《ODN光纤链路全程衰减如何计算》一文介绍了ODN光纤链路全程衰减的计算方法。ODN光纤链路的全程衰减A需小于PON允许的最大通道插入损耗P&#xff0c;并预留一定的线路维护余量M&#xff0c;如式1所示。 P ≥ A &#xff0b; M &#xff08;式1&…

用C求斐波那契数列-----(C每日一编程)

斐波那契数列: 斐波那契数列是指这样一个数列&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;21&#xff0c;34&#xff0c;55&#xff0c;89……这个数列从第3项开始 &#xff0c;每一项都等于前两项之和。 递推…

Lambda表达式超详解

目录 背景 Lambda表达式的用法 函数式接口 Lambda表达式的基本使用 语法精简 变量捕获 匿名内部类 匿名内部类中的变量捕获 Lambda的变量捕获 Lambda表达式在类集中的使用 Collection接口 List接口 Map接口 总结 背景 Lambda表达式是Java SE 8中的一个重要的新特性.…