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
    评论
好的,这里是一个基于SpringMVCMyBatis、Layui的商品增删改查的示例代码,你可以参考一下: ### 1. 创建商品实体类 ```java public class Product { private Integer id; private String name; private Double price; // getter和setter方法省略 } ``` ### 2. 创建商品DAO接口 ```java public interface ProductDao { List<Product> findAll(); Product findById(Integer id); void save(Product product); void update(Product product); void deleteById(Integer id); } ``` ### 3. 创建商品DAO实现类 ```java @Repository public class ProductDaoImpl implements ProductDao { @Autowired private SqlSession sqlSession; @Override public List<Product> findAll() { return sqlSession.selectList("findAll"); } @Override public Product findById(Integer id) { return sqlSession.selectOne("findById", id); } @Override public void save(Product product) { sqlSession.insert("save", product); } @Override public void update(Product product) { sqlSession.update("update", product); } @Override public void deleteById(Integer id) { sqlSession.delete("deleteById", id); } } ``` ### 4. 创建商品控制器 ```java @Controller @RequestMapping("/product") public class ProductController { @Autowired private ProductDao productDao; @GetMapping("/list") public String list(Model model) { List<Product> productList = productDao.findAll(); model.addAttribute("productList", productList); return "product/list"; } @GetMapping("/add") public String add() { return "product/add"; } @PostMapping("/save") public String save(Product product) { productDao.save(product); return "redirect:/product/list"; } @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, Model model) { Product product = productDao.findById(id); model.addAttribute("product", product); return "product/edit"; } @PostMapping("/update") public String update(Product product) { productDao.update(product); return "redirect:/product/list"; } @GetMapping("/delete/{id}") public String delete(@PathVariable("id") Integer id) { productDao.deleteById(id); return "redirect:/product/list"; } } ``` ### 5. 创建商品列表页面 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>商品列表</title> <link rel="stylesheet" href="/layui/css/layui.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md12"> <table class="layui-table"> <thead> <tr> <th>ID</th> <th>名称</th> <th>价格</th> <th>操作</th> </tr> </thead> <tbody> <#list productList as product> <tr> <td>${product.id}</td> <td>${product.name}</td> <td>${product.price}</td> <td> <a href="/product/edit/${product.id}" class="layui-btn layui-btn-sm layui-btn-normal">编辑</a> <a href="/product/delete/${product.id}" class="layui-btn layui-btn-sm layui-btn-danger">删除</a> </td> </tr> </#list> </tbody> </table> <a href="/product/add" class="layui-btn layui-btn-sm layui-btn-normal">添加商品</a> </div> </div> </div> <script src="/layui/layui.js"></script> </body> </html> ``` ### 6. 创建添加商品页面 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>添加商品</title> <link rel="stylesheet" href="/layui/css/layui.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md12"> <form class="layui-form" action="/product/save" method="post"> <div class="layui-form-item"> <label class="layui-form-label">名称</label> <div class="layui-input-block"> <input type="text" name="name" lay-verify="required" autocomplete="off" placeholder="请输入名称" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">价格</label> <div class="layui-input-block"> <input type="text" name="price" lay-verify="required" autocomplete="off" placeholder="请输入价格" class="layui-input"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">提交</button> <a href="/product/list" class="layui-btn layui-btn-primary">返回</a> </div> </div> </form> </div> </div> </div> <script src="/layui/layui.js"></script> </body> </html> ``` ### 7. 创建编辑商品页面 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>编辑商品</title> <link rel="stylesheet" href="/layui/css/layui.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md12"> <form class="layui-form" action="/product/update" method="post"> <input type="hidden" name="id" value="${product.id}"> <div class="layui-form-item"> <label class="layui-form-label">名称</label> <div class="layui-input-block"> <input type="text" name="name" lay-verify="required" autocomplete="off" placeholder="请输入名称" class="layui-input" value="${product.name}"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">价格</label> <div class="layui-input-block"> <input type="text" name="price" lay-verify="required" autocomplete="off" placeholder="请输入价格" class="layui-input" value="${product.price}"> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">提交</button> <a href="/product/list" class="layui-btn layui-btn-primary">返回</a> </div> </div> </form> </div> </div> </div> <script src="/layui/layui.js"></script> </body> </html> ``` ### 8. 配置SpringMVCMyBatisSpringMVC中,需要配置视图解析器、静态资源访问、文件上传等。这里只提供一个简单的配置示例: ```xml <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 静态资源访问 --> <mvc:resources mapping="/layui/**" location="/layui/" /> <!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8" /> <property name="maxUploadSize" value="10485760" /> </bean> <!-- MyBatis --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="com.example.model" /> <property name="mapperLocations" value="classpath*:com/example/dao/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.dao" /> </bean> ``` ### 9. 启动应用程序 在浏览器中输入http://localhost:8080/product/list访问商品列表页面,即可进行商品的增删改查操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值