本篇继上一篇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>