SSM整合(二)——书籍的增删改查

把ssm的配置都配置好就可以进行增删改查啦,只需要编写BookController类和一些页面就好了。

效果:

显示所有图书的书籍列表:

新增书籍页面:

修改书籍页面:

 

BookController类:

package com.lyr.controller;

import com.lyr.pojo.Books;
import com.lyr.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 {
    //controller调service层
    @Autowired
    @Qualifier("BookServiceImpl")
    private BookService bookService;

    //查询全部书籍,并跳转到书籍展示页面
    @RequestMapping("/allBooks")
    public String list(Model model){
        List<Books> list = bookService.queryAllBooks();
        model.addAttribute("list",list);
        return "allBooks";
    }

    //添加书籍页面
    @RequestMapping("/toAddBooks")
    public String toAddBook(){
        return "toAddBooks";
    }

    //添加书籍
    @RequestMapping("/addBooks")
    public String addBook(Books books){
        bookService.addBook(books);
        return "redirect:/book/allBooks";
    }

    //修改书籍信息页面
    @RequestMapping("/toUpdateBook")
    private String toChangeBook(int id,Model model){
        Books books = bookService.queryBook(id);
        model.addAttribute("Qbooks",books);
        return "toUpdateBook";
    }

    //修改书籍信息
    @RequestMapping("/updateBook")
    private String updateBook(Books books){
        System.out.println(books);
        bookService.updateBook(books);
        return "redirect:/book/allBooks";
    }

    //删除书籍
    @RequestMapping("/deleteBook")
    public String deleteBook(int id){
        bookService.deleteBook(id);
        return "redirect:/book/allBooks";
    }

    //查询书籍
    @RequestMapping("/queryBooks")
    public String queryBooks(String queryBookName,Model model){
        List<Books> books = bookService.queryBooksByName(queryBookName);
        model.addAttribute("list",books);
        return "allBooks";
    }
}

index.jsp显示主页面:


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>主页</title>
    <style type="text/css">
      a {
        text-decoration: none;
        color: black;
        font-size: 15px;
      }
      h4 {
        width: 150px;
        height: 25px;
        margin: 50px auto;
        background: pink;
        text-align: center;
        border-radius: 4px;
      }
    </style>
  </head>
  <body>
  <h4>
    <a href="${pageContext.request.contextPath}/book/allBooks">进入书籍展示</a>
  </h4>
  </body>
</html>

显示所有书籍的页面allBooks.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>书籍展示</title>
    <%--引入Bootstrap--%>
    <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>

<div class="container">

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    <small>书籍列表</small>
                </h1>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4 column" >
                <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBooks">新增书籍</a>
            </div>
            <div class="col-md-4 column" ></div>
            <div class="col-md-4 column" >
                <form action="${pageContext.request.contextPath}/book/queryBooks" method="post" style="float: right" class="form-inline">
                    <input type="text" name="queryBookName" class="form-control" placeholder="请输入要查询的书籍名称">
                    <input type="submit" value="查询" class="btn btn-primary">
                </form>
            </div>
        </div>

    </div>

    <div class="row clearfix">
        <div class="col-md-12 column">
            <table class="table table-hover table-striped">
                <thead>
                    <tr>
                        <th>书籍编号</th>
                        <th>书籍名称</th>
                        <th>书籍数量</th>
                        <th>书籍介绍</th>
                        <th >操作</th>
                    </tr>
                </thead>

                <%--从数据库中查询,遍历list--%>
                <tbody>
                    <c:forEach var="book" items="${list}">
                        <tr>
                            <td>${book.bookID}</td>
                            <td>${book.bookName}</td>
                            <td>${book.bookCounts}</td>
                            <td>${book.detail}</td>
                            <td>
                                <a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.bookID}" class="btn btn-primary">修改</a>
                                &nbsp;|&nbsp;
                                <a href="${pageContext.request.contextPath}/book/deleteBook?id=${book.bookID}" class="btn btn-danger">删除</a>
                            </td>
                        </tr>
                    </c:forEach>
                </tbody>
            </table>
        </div>
    </div>

</div>


</body>
</html>

添加书籍界面toAddBooks.jsp:

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加书籍</title>

    <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    <small>添加书籍</small>
                </h1>
            </div>
        </div>
    </div>

    <form action="${pageContext.request.contextPath}/book/addBooks" method="post">
        <div class="form-group">
            <label>书籍名称:</label>
            <input type="text" class="form-control" name="bookName" required>
        </div>
        <div class="form-group">
            <label>书籍数量:</label>
            <input type="text" class="form-control" name="bookCounts" required>
        </div>
        <div class="form-group">
            <label>书籍介绍 :</label>
            <input type="text" class="form-control" name="detail" required>
        </div>
        <div class="form-group">
            <input type="submit" class="form-control" value="添加">
        </div>
    </form>

</div>

</div>
</body>
</html>

修改书籍信息页面toUpdateBook.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改书籍</title>

    <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="row clearfix">
        <div class="col-md-12 column">
            <div class="page-header">
                <h1>
                    <small>修改书籍</small>
                </h1>
            </div>
        </div>
    </div>

    <form action="${pageContext.request.contextPath}/book/updateBook" method="post">
        <%--前端传递隐藏域提交bookID--%>
        <input hidden name="bookID" value="${Qbooks.bookID}">
        <div class="form-group">
            <label>书籍名称:</label>
            <input type="text" class="form-control" name="bookName" value="${Qbooks.bookName}" required>
        </div>
        <div class="form-group">
            <label>书籍数量:</label>
            <input type="text" class="form-control" name="bookCounts" value="${Qbooks.bookCounts}" required>
        </div>
        <div class="form-group">
            <label>书籍介绍 :</label>
            <input type="text" class="form-control" name="detail" value="${Qbooks.detail}" required>
        </div>
        <div class="form-group">
            <input type="submit" class="form-control" value="修改">
        </div>
    </form>

</div>

</div>
</body>
</html>

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM是Spring+SpringMVC+MyBatis的缩写,它们分别是流行的Java框架,可以协同作用来实现快速、高效的Web开发。 下面是一个简单的示例,演示如何利用SSM框架来实现增删改查操作: 1. 配置数据源和MyBatis 在Spring的配置文件,我们需要配置数据源和MyBatis的相关信息。以下是一个示例: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath*:mapper/*.xml"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> </bean> ``` 2. 创建实体类和Mapper接口 创建一个实体类,它对应着数据库的一张表: ```java public class User { private Long id; private String name; private Integer age; // 省略getter和setter方法 } ``` 接着,创建一个Mapper接口,定义对应的增删改查方法: ```java public interface UserMapper { User selectById(Long id); List<User> selectAll(); void insert(User user); void update(User user); void delete(Long id); } ``` 3. 创建Mapper映射文件 在src/main/resources/mapper目录下创建UserMapper.xml文件,定义SQL语句: ```xml <mapper namespace="com.example.mapper.UserMapper"> <select id="selectById" parameterType="java.lang.Long" resultType="com.example.domain.User"> select * from user where id = #{id} </select> <select id="selectAll" resultType="com.example.domain.User"> select * from user </select> <insert id="insert" parameterType="com.example.domain.User"> insert into user(name, age) values(#{name}, #{age}) </insert> <update id="update" parameterType="com.example.domain.User"> update user set name = #{name}, age = #{age} where id = #{id} </update> <delete id="delete" parameterType="java.lang.Long"> delete from user where id = #{id} </delete> </mapper> ``` 4. 创建Service层 创建一个UserService接口,定义对应的增删改查方法: ```java public interface UserService { User selectById(Long id); List<User> selectAll(); void insert(User user); void update(User user); void delete(Long id); } ``` 创建一个UserServiceImpl类,实现UserService接口: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User selectById(Long id) { return userMapper.selectById(id); } @Override public List<User> selectAll() { return userMapper.selectAll(); } @Override public void insert(User user) { userMapper.insert(user); } @Override public void update(User user) { userMapper.update(user); } @Override public void delete(Long id) { userMapper.delete(id); } } ``` 5. 创建Controller层 创建一个UserController类,处理用户的HTTP请求: ```java @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") @ResponseBody public User selectById(@PathVariable("id") Long id) { return userService.selectById(id); } @GetMapping("") @ResponseBody public List<User> selectAll() { return userService.selectAll(); } @PostMapping("") @ResponseBody public void insert(@RequestBody User user) { userService.insert(user); } @PutMapping("") @ResponseBody public void update(@RequestBody User user) { userService.update(user); } @DeleteMapping("/{id}") @ResponseBody public void delete(@PathVariable("id") Long id) { userService.delete(id); } } ``` 6. 运行程序 现在,我们可以启动程序,访问http://localhost:8080/user,来获取所有用户的信息;或者访问http://localhost:8080/user/1,来获取ID为1的用户的信息。 当我们使用POST、PUT、DELETE请求时,需要在请求头添加Content-Type: application/json,以告诉服务器请求数据的格式为JSON。同时,请求体需要传入JSON格式的数据,例如: ```json { "name": "Tom", "age": 20 } ``` 这样就可以实现增删改查功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值