ssm整合的增删改查

bookmapper类:

@Repository
public interface BookMapper {
//新增
    void insertBookMapper(BookUpdateReqVo bookUpdateReqVo);
    //查询
    Book selectBookMapper(String id);
    //修改
    void updateBookMapper(Book book);
    //删除
    void deleteBookMapper(String id);
    //查询全部图书信息
    List<Book> selectAllBook();

}

re'socurces中的bookmapper。xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qm.mapper.BookMapper">
    <resultMap id="selectBookMap" type="com.qm.po.Book">
        <result column="id" jdbcType="INTEGER" property="id" />
        <result column="name" jdbcType="VARCHAR" property="name" />
        <result column="author" jdbcType="VARCHAR" property="author" />
        <result column="publish" jdbcType="VARCHAR" property="publish" />
        <result column="publishdate" jdbcType="DATE" property="publishdate" />
        <result column="page" jdbcType="INTEGER" property="page" />
        <result column="price" jdbcType="INTEGER" property="price" />
        <result column="content" jdbcType="VARCHAR" property="content" />
    </resultMap>
    <insert id="insertBookMapper" parameterType="com.qm.Vo.BookUpdateReqVo">
        insert into book (id,name,author,publish,publishdate,page,price,content
        )
        values (#{id},#{name},#{author},#{publish},#{publishdate},#{page},#{price},#{content}
               )
    </insert>
    <insert id="addGoods" keyProperty="id" useGeneratedKeys="true">
        insert into book(id) values (#{id})
    </insert>


    <select id="selectBookMapper" parameterType="java.lang.String" resultType="Book">
        select id,name,author,publish,publishdate,page,price,content
        from book
        where id = #{id}
    </select>

    <update id="updateBookMapper" parameterType="Book">
        update book
            set
                name = #{name},
                author = #{author},
               publish = #{publish},
                publishdate = #{publishdate},
                page = #{page},
                price = #{price},
                content = #{content}
        where id = #{id}
    </update>

    <delete id="deleteBookMapper" parameterType="java.lang.String">
        delete from book where id = #{value}
    </delete>

    <select id="selectAllBook"  resultMap="selectBookMap">
        select id,name,author,publish,publishdate,page,price,content
        from book
    </select>
</mapper>

po类:

@Data
public class Book {
private int id;
    private String name;
    private String author;
    private String publish;
    private Date publishdate;
    private int page;
    private int price;
    private String content;
}

bookservice中的接口:

public interface IBookService {
/**
     * 新增数据
     * @param book
     */
    void insertBookService(BookUpdateReqVo bookUpdateReqVo);

    /**
     * 通过id查询某条数据
     * @return
     */
    Book selectBookSerivce(String id);

    /**
     * 修改数据
     * @param book
     */
    void updateBookService(Book book);

    /**
     * 删除数据
     * @param id
     */
    void deleteBookService(String id);

    /**
     * 查询全部信息
     * @return
     */
    List<Book> selectAllBook();
}

bookservice类中:

@Service
public class BookSerivceImpl implements IBookService {

@Autowired
    private BookMapper bookMapper;

    public void insertBookService(BookUpdateReqVo bookUpdateReqVo) {
//        book.setPublishdate(new Date(System.currentTimeMillis()));
        bookMapper.insertBookMapper(bookUpdateReqVo);
    }

public Book selectBookSerivce(String id) {
return bookMapper.selectBookMapper(id);
    }

public void updateBookService(Book book) {
bookMapper.updateBookMapper(book);
    }

public void deleteBookService(String id) {
bookMapper.deleteBookMapper(id);
    }

//查询全部图书信息
    public List<Book> selectAllBook() {
        List<Book> books = bookMapper.selectAllBook();
        return books;
    }

}

bookcontroller中的:

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

@Autowired
    private IBookService bookSerivce;
    @GetMapping("insetin")
public String insetin(){
return "inset";
    }
@PostMapping("into")
public String  insetBookController(BookUpdateReqVo bookUpdateReqVo){;
        bookSerivce.insertBookService(bookUpdateReqVo);
        return "index";
    }
@GetMapping("sel")
public String selectBookController(String id,HttpSession session){
        Book book = bookSerivce.selectBookSerivce(id);
        Date publishdate = book.getPublishdate();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String parse = format.format(publishdate);
        BookUpdateReqVo bookVo = BeanUtil.copyProperties(book, BookUpdateReqVo.class);
        bookVo.setPublishdate(parse);
        session.setAttribute("book",bookVo);
        return "update";
    }

@PostMapping("/upd")
public String updateBookController(BookUpdateReqVo bookUpdateReqVo) throws ParseException {
        String date = bookUpdateReqVo.getPublishdate();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = format.parse(date);
        Book book= BeanUtil.copyProperties(bookUpdateReqVo,Book.class);
        book.setPublishdate(parse);
        bookSerivce.updateBookService(book);
        return "index";
    }
@ResponseBody
    @PostMapping("/del")
public String deleteBookController(String id){
bookSerivce.deleteBookService(id);
        return "success";
    }
//查询全部图书信息
    @ResponseBody
    @GetMapping("/all")
public PageInfo<List> selectAllBook(PageVo pageVo){
        PageHelper.startPage(pageVo.getPageNum(),pageVo.getPageSize());
        List books = bookSerivce.selectAllBook();
        PageInfo<List> bookPageInfo = new PageInfo<List>(books);
        return bookPageInfo;
    }
}

改变时间字符的vo类:

@Data
public class BookUpdateReqVo {
private int id;
    private String name;
    private String author;
    private String publish;
    private String publishdate;
    private int page;
    private int price;
    private String content;

}

主页界面:

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2023/2/2 0002
  Time: 11:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>登陆页面</title>
    <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <!-- 引入 font-awesome -->
    <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <title>首页</title>
    <style>
        .center {
margin-left: auto;
            margin-right: auto;
        }
</style>
    <script>
        var current=null;
        var totalPage = 1;
        function pageshow(pageNum,pageSize) {
//等待页面加载完毕,再执行
            if (pageNum==0){
                pageNum=1;
            }
if (pageNum>totalPage){
                pageNum=totalPage;
            }
            $.ajax({
method: 'get',
                data: {pageNum:pageNum,pageSize:pageSize},
                url: '/book/all',
                success: function(respDate) {
current=respDate.pageNum;
                    $("#bookList").empty()
totalPage=respDate.pages;
                    var arr = respDate.list;
                    for (let i = 0; i < arr.length; i++) {
var json = arr[i];
                        $("#bookList").append("<tr id="+json.id+">" +
"<td>" + json.name + "</td>" +
"<td>" + json.author + "</td>" +
"<td>" + json.publish + "</td>" +
"<td>" + json.publishdate + "</td>" +
"<td>" + json.page + "</td>" +
"<td>" + json.price + "</td>" +
"<td>" + json.content + "</td>" +
"<td><a href='/book/sel?id="+json.id+"'>修改</a>" +
"<a onclick='del(\""+json.id+"\")'>删除</a></td>"+
"</tr>")
                    }  //a标签用的是get类型请求
                    $("#bookList").append("<tr>"+
"<td><a href='/book/insetin'>新增图书</a></td><td>&nbsp;</td><td>&nbsp;</td>" +
"<td>一共"+(respDate.total)+"条</td><td><a onclick='pageshow("+(respDate.pageNum-1)+",3)'>上一页</a><a onclick='pageshow("+(respDate.pageNum+1)+",3)'>下一页</a></td></tr>")
                },
                error: function(errorDate) {
                },
                dataType: 'json'//$ajax方法会将响应数据转换成json对象
            })
        }
//匿名函数,当jsp页面的代码运行完毕后自动运行
        $(function(){
pageshow(1,3);
                   })
//删除员工
        function del(id){
            $.ajax({
method: 'post',
                data:{id:id},
                url: "/book/del",
                success:function (data){
if (data == "success"){
                        $("#"+id).remove();
                        pageshow(current,3);
                    }
                },
                error:function (data){
alert("删除失败")
                },
                dataType: 'text'
            })
        }
</script>
</head>
<body>
<div style="width: 600px;
margin-top: 150px;
font-size: 18px;
font-weight: bold;
text-align: center;" class="center">
    图&nbsp;书&nbsp;列&nbsp;表
</div>
<div style="width: 800px;
        margin-left: auto;
        margin-right: auto;
            border: 1px;">
    <table class="table table-hover">
        <thead style="background-color: darkgray">
        <th>书名</th>
        <th>作者</th>
        <th>出版社</th>
        <th>出版日期</th>
        <th> 页数</th>
        <th>价格</th>
        <th>内容摘要</th>
        <th>操作</th>
        </thead>
        <tbody id="bookList"></tbody>
    </table>
</div>
</body>
</html>

新增页面:

<%--
  Created by IntelliJ IDEA.
  User: 27141
  Date: 2023/2/5
  Time: 12:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>新增书籍页面</title>
    <!-- 引入 Bootstrap-->
    <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <!-- 引入 font-awesome -->
    <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div>
        <form action="/book/into" method="post">
        书名:<input type="text" id="name" name="name">
        作者:<input type="text" id="author" name="author">
        出版社:<input type="text" id="publish" name="publish">
        出版日期:<input type="date" name="publishdate">
        页数:<input type="text" id="page" name="page">
        价格:<input type="text" id="price" name="price">
        内容摘要:<input type="text" id="content" name="content">
        <input type="submit" value="提交" class="btn btn-primary">
    </form>
</div>
</body>
</html>

登录界面:

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2023/2/2 0002
  Time: 11:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>登陆页面</title>
    <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <!-- 引入 font-awesome -->
    <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<%--    $() //jquery  前端框架找某个元素--%>
<%--    ${} //el&ndash;%&gt;   jsp页面中获取session里的值--%>
<%--    #{} ognl &ndash;%&gt;   这个是mybatis里的xml用的--%>

    <script>
          function submitForm(){
var username = $("#username").val();
              var password = $("#password").val();
              if (password.trim()!='' && username.trim()!=''){
return true;
              }
alert("账号或密码不能为空");
              return false;
          }
</script>
</head>
<body>
<div style="width: 300px; margin-left: auto; margin-right: auto; margin-top: 150px; text-align: center; font-size:50px;">图书管理系统</div>
<div style="width: 300px; margin-left: auto; margin-right: auto; border:1px solid black " >
<form action="/user/login" method="post" style="width: 200px; margin-left:50px; margin-top: 50px;" onsubmit="return submitForm()" >
    <div class="form-group">
        账号:<input type="text" id="username" name="name" class="form-control"  placeholder="输入账号">
    </div>
    <div class="form-group">
        密码:<input type="password" id="password" name="password" class="form-control" placeholder="输入密码">
    </div>
    <div class="form-group">
        <span style="color: red; <c:if test="${error == 'checkerror'}">display: block;</c:if><c:if test="${error != 'checkerror'}">display: none;</c:if>">用户名或密码错误!</span>
    </div>
    <button type="submit" class="btn btn-primary">登录</button>
</form>
</div>
</body>
</html>

修改页面:

<%--
  Created by IntelliJ IDEA.
  User: 27141
  Date: 2023/2/5
  Time: 12:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>修改书籍页面</title>
    <!-- 引入 Bootstrap-->
    <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <!-- 引入 font-awesome -->
    <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div style="width: 300px; margin-left: auto; margin-right: auto; margin-top: 150px; border:0px solid black" >
    <form action="/book/upd" method="post" style="width: 200px; margin-left:50px; margin-top: 50px;">
        <input type="hidden" value="${book.id}" id="id" name="id">
        书名:<input type="text" value="${book.name}" name="name"><br/>
        作者:<input type="text" value="${book.author}" name="author"><br/>
        出版社:<input type="text" value="${book.publish}" name="publish"><br/>
        出版日期:<br/><input type="date" value="${book.publishdate}" name="publishdate"><br/>
        页数:<input type="text" value="${book.page}" name="page"><br/>
        价格:<input type="text" value="${book.price}" name="price"><br/>
        内容摘要:<input type="text" value="${book.content}" name="content"><br/>
        <input type="submit" class="btn btn-primary" value="提交">
    </form>
</div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值