springmvc+spring+mybatis实现增删改查

本篇继上一篇springmvc+spring+mybatis框架的搭建

 首先编写SQL语句

BookMpper.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">
<!-- 命名空间,可以对SQL进行分类的一个管理 -->
<mapper namespace="com.zjq.ssm.dao.BookDao">
    <!-- 查询全部 -->
    <select id="getAllBook" parameterType="int" resultType="Book">
        select * from tb_book 
    </select>
    
    <!-- 根据ID查询 -->
    <select id="findById" parameterType="int" resultType="Book">
    	select * 
    	from tb_book where id=#{id}
    </select>
    
    <!-- 插入 -->
    <insert id="insertBook" parameterType="Book">
    	insert into tb_book 
    	(bookName)values(#{bookName})
    </insert>
    
    <!-- 删除 -->
    <delete id="deleteBookById" parameterType="int">
    	delete from tb_book where id = #{id}
    </delete>
    
    <!-- 更新 -->
    <update id="updateBook" parameterType="Book">
    	update tb_book set 
    	bookName=#{bookName} where id=#{id}
    </update>
    
</mapper>

BookDao.java

package com.zjq.ssm.dao;

import java.util.List;
import com.zjq.ssm.entity.Book;

public interface BookDao {
	//查找数据
	public List<Book> getAllBook();
	//插入数据
	public void insertBook(Book book);
	//删除数据
    public void deleteBookById(int id);
    //根据ID查找
    public Book findById(int id);
    //更新数据
    public void updateBook(Book book);
}

 BookService.java

 

package com.zjq.ssm.service;

import java.util.List;

import com.zjq.ssm.entity.Book;

public interface BookService {

	// 查找数据
    public List<Book> getAllBook();
    //插入数据
    public void insertBook(Book book);
    //删除数据
    public void deleteBookById(int id);
    //根据ID查找
    public Book findById(int id);
    //更新数据
    public void updateBook(Book book);
}

BookServiceImpl.java

package com.zjq.ssm.impl;

import java.util.List;
import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.zjq.ssm.dao.BookDao;
import com.zjq.ssm.entity.Book;
import com.zjq.ssm.service.BookService;

@Service
public class BookServiceImpl implements BookService{
	@Resource
	BookDao bookDao;
	
	@Override
	public List<Book> getAllBook() {	
		return bookDao.getAllBook();
	}

	@Override
	public void insertBook(Book book) {
		// TODO Auto-generated method stub
		bookDao.insertBook(book);
	}

	@Override
	public void deleteBookById(int id) {
		// TODO Auto-generated method stub
		bookDao.deleteBookById(id);
	}

	@Override
	public Book findById(int id) {
		// TODO Auto-generated method stub
		return bookDao.findById(id);
	}

	@Override
	public void updateBook(Book book) {
		// TODO Auto-generated method stub
		bookDao.updateBook(book);
	}
}

查询操作

先写个跳转界面

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="Book/getAllBook">跳转</a>
</body>
</html>

findAll.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图书管理</title>
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
	$(function () {
		$(".delete").click(function () {
			var href = $(this).attr("href");
			$("form").attr("action", href).submit();
			return false;
		});
	})
</script>
</head>
<body>
    <div>
        <h3 class="title"><span>图书管理</span></h3>       
        <table border="1" width="30%" class="tab">
            <tr>               
                <th>编号</th>
                <th>书名</th>
                <th>修改</th>
				<th>删除</th>                               
            </tr>
            <c:forEach var="book" items="${books}">
                <tr>                  
                    <td>${book.id}</td>
                    <td>${book.bookName}</td>
                    <td><a href="toupdate/${book.id}">修改</a></td>
					<td><a class="delete" href="deleteBookById/${book.id }">删除</a></td>                                   
                </tr>
            </c:forEach>
        </table> 
        <br><br>
        <a href="insert">添加</a>   
    </div>
</body>
</html>

 

/**
	 * 查找所有书本
	 * @param model
	 * @return
	 */
	@RequestMapping("/getAllBook")
	public String getAllBook(Model model) {
		List<Book> books = bookService.getAllBook();
		for (Book book : books) {
			System.out.println(book.getBookName());
		}
		
		model.addAttribute("books", books);
		return "findAll";
	}

实现添加操作

insert.jsp

<form action="${pageContext.request.contextPath }/Book/insertBook" method="post">
		书名:<input type="text" name="bookName"/>
		<input type="submit" value="添加"/>
	</form>
/**
	 * 跳转到添加界面
	 * @return
	 */
	@RequestMapping(value="insert")
	public String insert() {
		return "insert";
	}
	
	/**
	 * 添加书本
	 * @param book
	 * @return
	 */
	@RequestMapping(value="/insertBook", method=RequestMethod.POST)
	public String insertBook(@Validated Book book) {
		bookService.insertBook(book);
		return "redirect:/Book/getAllBook";
	}

在web.xml文件下设置字符过滤器,否则中文将无法存储

<!-- 设置字符过滤器 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<!-- 针对request -->
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<!-- 针对response -->
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 删除操作

/**
	 * 根据ID删除书本
	 * @param id
	 * @return
	 */
	@RequestMapping(value="/deleteBookById/{id}")
	public String deleteBookById(@PathVariable("id") int id) {
		bookService.deleteBookById(id);
		return "redirect:/Book/getAllBook";
	}

更新操作

insert.jsp(在原有基础上添加)


	<br><br>
	
	<form action="${pageContext.request.contextPath }/Book/updateBook" method="post" modelAttribute="book">
		<input type="hidden" name="id" value="${book.id}">
		书名:<input type="text" name="bookName" value="${book.bookName}"/>
		<input type="submit" value="更新"/>
	</form>
/**
	 * 跳转到更新界面
	 * 数据回传
	 * @param id
	 * @param map
	 * @return
	 */
	@RequestMapping(value="/toupdate/{id}")
	public String ToUpdate(@PathVariable("id") int id, Map<String, Object> map) {
		Book book = bookService.findById(id);
		map.put("book", book);
		return "insert";
	}
	
	/**
	 * 更新书本
	 * @param book
	 * @return
	 */
	@RequestMapping(value="/updateBook")
	public String updateBook(Book book) {
		bookService.updateBook(book);
		return "redirect:/Book/getAllBook";
	}

完整的HomeController.java

package com.zjq.ssm.controller;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.zjq.ssm.entity.Book;
import com.zjq.ssm.service.BookService;


@Controller
@RequestMapping("/Book")
public class HomeController {
	
	@Resource
	@Autowired
	BookService bookService;

	/**
	 * 查找所有书本
	 * @param model
	 * @return
	 */
	@RequestMapping("/getAllBook")
	public String getAllBook(Model model) {
		List<Book> books = bookService.getAllBook();
		for (Book book : books) {
			System.out.println(book.getBookName());
		}
		
		model.addAttribute("books", books);
		return "findAll";
	}
	
	/**
	 * 跳转到添加界面
	 * @return
	 */
	@RequestMapping(value="insert")
	public String insert() {
		return "insert";
	}
	
	/**
	 * 添加书本
	 * @param book
	 * @return
	 */
	@RequestMapping(value="/insertBook", method=RequestMethod.POST)
	public String insertBook(@Validated Book book) {
		bookService.insertBook(book);
		return "redirect:/Book/getAllBook";
	}
	
	/**
	 * 根据ID删除书本
	 * @param id
	 * @return
	 */
	@RequestMapping(value="/deleteBookById/{id}")
	public String deleteBookById(@PathVariable("id") int id) {
		bookService.deleteBookById(id);
		return "redirect:/Book/getAllBook";
	}
	
	/**
	 * 根据ID查找书本
	 * @param model
	 * @param id
	 * @return
	 */
	@RequestMapping(value="/findById")
	public String findById(Model model, int id) {
		Book book = bookService.findById(id);
		model.addAttribute("book", book);
		return "redirect:/Book/getAllBook";
	}
	
	/**
	 * 跳转到更新界面
	 * 数据回传
	 * @param id
	 * @param map
	 * @return
	 */
	@RequestMapping(value="/toupdate/{id}")
	public String ToUpdate(@PathVariable("id") int id, Map<String, Object> map) {
		Book book = bookService.findById(id);
		map.put("book", book);
		return "insert";
	}
	
	/**
	 * 更新书本
	 * @param book
	 * @return
	 */
	@RequestMapping(value="/updateBook")
	public String updateBook(Book book) {
		bookService.updateBook(book);
		return "redirect:/Book/getAllBook";
	}
	
}

完整的insert.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="${pageContext.request.contextPath }/Book/insertBook" method="post">
		书名:<input type="text" name="bookName"/>
		<input type="submit" value="添加"/>
	</form>
	
	<br><br>
	
	<form action="${pageContext.request.contextPath }/Book/updateBook" method="post" modelAttribute="book">
		<input type="hidden" name="id" value="${book.id}">
		书名:<input type="text" name="bookName" value="${book.bookName}"/>
		<input type="submit" value="更新"/>
	</form>
	
</body>
</html>

 

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值