目录
3.2在BookMapper.xml文件编写查询的方法(并且实现)
前言:
小编讲述了参数传递,返回值以及页面跳转!为我们的CRUD提供了理论基础,接下来小编会通过SpringMvc实现CRUD来讲述在企业开发中必须要学会的CRUD

- <properties>
- <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
- <maven.compiler.source>1.8maven.compiler.source>
- <maven.compiler.target>1.8maven.compiler.target>
- <maven.compiler.plugin.version>3.7.0maven.compiler.plugin.version>
-
-
-
- <spring.version>5.0.2.RELEASEspring.version>
-
- <mybatis.version>3.4.5mybatis.version>
-
- <mysql.version>5.1.44mysql.version>
-
- <pagehelper.version>5.1.2pagehelper.version>
-
- <mybatis.spring.version>1.3.1mybatis.spring.version>
-
- <commons.dbcp2.version>2.1.1commons.dbcp2.version>
- <commons.pool2.version>2.4.3commons.pool2.version>
-
- <log4j2.version>2.9.1log4j2.version>
- <log4j2.disruptor.version>3.2.0log4j2.disruptor.version>
- <slf4j.version>1.7.13slf4j.version>
-
- <junit.version>4.12junit.version>
- <servlet.version>4.0.0servlet.version>
- <lombok.version>1.18.2lombok.version>
-
- <mybatis.ehcache.version>1.1.0mybatis.ehcache.version>
- <ehcache.version>2.10.0ehcache.version>
-
- <redis.version>2.9.0redis.version>
- <redis.spring.version>1.7.1.RELEASEredis.spring.version>
- <jackson.version>2.9.3jackson.version>
- <jstl.version>1.2jstl.version>
- <standard.version>1.1.2standard.version>
- <tomcat-jsp-api.version>8.0.47tomcat-jsp-api.version>
- <commons-fileupload.version>1.3.3commons-fileupload.version>
- <hibernate-validator.version>5.0.2.Finalhibernate-validator.version>
-
- <shiro.version>1.3.2shiro.version>
- properties>

- <dependencies>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-coreartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-beansartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-contextartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-ormartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-txartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-aspectsartifactId>
- <version>${spring.version}version>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webartifactId>
- <version>${spring.version}version>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-testartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatisartifactId>
- <version>${mybatis.version}version>
- dependency>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>${mysql.version}version>
- dependency>
-
- <dependency>
- <groupId>com.github.pagehelpergroupId>
- <artifactId>pagehelperartifactId>
- <version>${pagehelper.version}version>
- dependency>
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatis-springartifactId>
- <version>${mybatis.spring.version}version>
- dependency>
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-context-supportartifactId>
- <version>${spring.version}version>
- dependency>
-
-
- <dependency>
- <groupId>org.mybatis.cachesgroupId>
- <artifactId>mybatis-ehcacheartifactId>
- <version>${mybatis.ehcache.version}version>
- dependency>
-
- <dependency>
- <groupId>net.sf.ehcachegroupId>
- <artifactId>ehcacheartifactId>
- <version>${ehcache.version}version>
- dependency>
-
- <dependency>
- <groupId>redis.clientsgroupId>
- <artifactId>jedisartifactId>
- <version>${redis.version}version>
- dependency>
- <dependency>
- <groupId>org.springframework.datagroupId>
- <artifactId>spring-data-redisartifactId>
- <version>${redis.spring.version}version>
- dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-databindartifactId>
- <version>${jackson.version}version>
- dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-coreartifactId>
- <version>${jackson.version}version>
- dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.coregroupId>
- <artifactId>jackson-annotationsartifactId>
- <version>${jackson.version}version>
- dependency>
-
-
- <dependency>
- <groupId>org.apache.commonsgroupId>
- <artifactId>commons-dbcp2artifactId>
- <version>${commons.dbcp2.version}version>
- <exclusions>
- <exclusion>
- <artifactId>commons-pool2artifactId>
- <groupId>org.apache.commonsgroupId>
- exclusion>
- exclusions>
- dependency>
- <dependency>
- <groupId>org.apache.commonsgroupId>
- <artifactId>commons-pool2artifactId>
- <version>${commons.pool2.version}version>
- dependency>
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>${spring.version}version>
- dependency>
-
-
-
-
-
-
- <dependency>
- <groupId>org.slf4jgroupId>
- <artifactId>slf4j-apiartifactId>
- <version>${slf4j.version}version>
- dependency>
- <dependency>
- <groupId>org.slf4jgroupId>
- <artifactId>jcl-over-slf4jartifactId>
- <version>${slf4j.version}version>
- <scope>runtimescope>
- dependency>
-
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-apiartifactId>
- <version>${log4j2.version}version>
- dependency>
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-coreartifactId>
- <version>${log4j2.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-slf4j-implartifactId>
- <version>${log4j2.version}version>
- dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4jgroupId>
- <artifactId>log4j-webartifactId>
- <version>${log4j2.version}version>
- <scope>runtimescope>
- dependency>
-
-
- <dependency>
- <groupId>com.lmaxgroupId>
- <artifactId>disruptorartifactId>
- <version>${log4j2.disruptor.version}version>
- dependency>
-
-
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <version>${junit.version}version>
- <scope>testscope>
- dependency>
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>javax.servlet-apiartifactId>
- <version>${servlet.version}version>
- <scope>providedscope>
- dependency>
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- <version>${lombok.version}version>
- <scope>providedscope>
- dependency>
- <dependency>
- <groupId>jstlgroupId>
- <artifactId>jstlartifactId>
- <version>${jstl.version}version>
- dependency>
- <dependency>
- <groupId>taglibsgroupId>
- <artifactId>standardartifactId>
- <version>${standard.version}version>
- dependency>
- <dependency>
- <groupId>org.apache.tomcatgroupId>
- <artifactId>tomcat-jsp-apiartifactId>
- <version>${tomcat-jsp-api.version}version>
- dependency>
- <dependency>
- <groupId>commons-fileuploadgroupId>
- <artifactId>commons-fileuploadartifactId>
- <version>${commons-fileupload.version}version>
- dependency>
-
- <dependency>
- <groupId>org.hibernategroupId>
- <artifactId>hibernate-validatorartifactId>
- <version>${hibernate-validator.version}version>
- dependency>
-
-
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-coreartifactId>
- <version>${shiro.version}version>
- dependency>
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-webartifactId>
- <version>${shiro.version}version>
- dependency>
- <dependency>
- <groupId>org.apache.shirogroupId>
- <artifactId>shiro-springartifactId>
- <version>${shiro.version}version>
- dependency>
- dependencies>


- "1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1">
- <display-name>Archetype Created Web Applicationdisplay-name>
-
-
- <context-param>
- <param-name>contextConfigLocationparam-name>
- <param-value>classpath:spring-context.xmlparam-value>
- context-param>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
- listener>
-
-
-
- <filter>
- <filter-name>encodingFilterfilter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
- <async-supported>trueasync-supported>
- <init-param>
- <param-name>encodingparam-name>
- <param-value>UTF-8param-value>
- init-param>
- filter>
- <filter-mapping>
- <filter-name>encodingFilterfilter-name>
- <url-pattern>/*url-pattern>
- filter-mapping>
-
-
- <servlet>
- <servlet-name>SpringMVCservlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
-
- <init-param>
- <param-name>contextConfigLocationparam-name>
- <param-value>classpath:spring-mvc.xmlparam-value>
- init-param>
- <load-on-startup>1load-on-startup>
-
- <async-supported>trueasync-supported>
- servlet>
- <servlet-mapping>
- <servlet-name>SpringMVCservlet-name>
- <url-pattern>/url-pattern>
- servlet-mapping>
- web-app>
在book的类里面重写tostring方法!

- package com.lz.controller;
-
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
-
- /**
- * @author lz
- * @create 2023-09-07 16:21
- */
- @Controller
- public class PageController {
-
- @RequestMapping("/page/{page}")
- public String toPage(@PathVariable("page")String page){
-
- return page;
- }
-
-
- @RequestMapping("/page/{dir}{page}")
- public String toDirPage(@PathVariable("dir")String dir,
- @PathVariable("page")String page ){
-
- return dir + "/" + page;
- }
- }
- package com.lz.Biz;
-
- import com.lz.model.Book;
- import com.lz.utlis.PageBean;
-
- import java.util.List;
-
- public interface BookBiz {
- int deleteByPrimaryKey(Integer bid);
-
- int insert(Book record);
-
- int insertSelective(Book record);
-
- Book selectByPrimaryKey(Integer bid);
-
- int updateByPrimaryKeySelective(Book record);
-
- int updateByPrimaryKey(Book record);
-
- List
listPager (Book book, PageBean pageBean); - }
实现接口的方法,并且用@serverce注解被spring管理,@Autowries调用Book.xml
文件
- package com.lz.Biz;
-
- import com.lz.mapper.BookMapper;
- import com.lz.model.Book;
- import com.lz.utlis.PageBean;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import java.util.List;
-
- /**
- * @author lz
- * @create 2023-09-08 9:32
- *
- */
- @Service
- public class BookBizImpl implements BookBiz{
- @Autowired
- private BookMapper bookMapper;
- @Override
- public int deleteByPrimaryKey(Integer bid) {
- return bookMapper.deleteByPrimaryKey(bid) ;
- }
-
- @Override
- public int insert(Book record) {
- return bookMapper.insert(record);
- }
-
- @Override
- public int insertSelective(Book record) {
- return bookMapper.insertSelective(record);
- }
-
- @Override
- public Book selectByPrimaryKey(Integer bid) {
- return bookMapper.selectByPrimaryKey(bid);
- }
-
- @Override
- public int updateByPrimaryKeySelective(Book record) {
- return bookMapper.updateByPrimaryKey(record);
- }
-
- @Override
- public int updateByPrimaryKey(Book record) {
- return bookMapper.updateByPrimaryKey(record);
- }
-
- @Override
- public List
listPager(Book book, PageBean pageBean) { - return bookMapper.listPager(book);
- }
-
- <select id="listPager" resultType="com.lz.model.Book" parameterType="com.lz.model.Book" >
- select
- <include refid="Base_Column_List" />
- from t_mvc_book
- <where>
- <if test="bname !=null">
- and cname like concat ('%',#{bname},'%')
- if>
- where>
- select>
List listPager(Book book);

- package com.lz.tag;
-
- import com.lz.utlis.PageBean;
-
- import javax.servlet.jsp.JspException;
- import javax.servlet.jsp.JspWriter;
- import javax.servlet.jsp.tagext.BodyTagSupport;
- import java.io.IOException;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.Set;
-
-
- public class PageTag extends BodyTagSupport{
- private PageBean pageBean;// 包含了所有分页相关的元素
-
- public PageBean getPageBean() {
- return pageBean;
- }
-
- public void setPageBean(PageBean pageBean) {
- this.pageBean = pageBean;
- }
-
- @Override
- public int doStartTag() throws JspException {
- // 没有标签体,要输出内容
- JspWriter out = pageContext.getOut();
- try {
- out.print(toHTML());
- } catch (IOException e) {
- e.printStackTrace();
- }
- return super.doStartTag();
- }
-
- private String toHTML() {
- StringBuffer sb = new StringBuffer();
- // 隐藏的form表单---这个就是上一次请求下次重新发的奥义所在
- // 上一次请求的URL
- sb.append(");
- sb.append(" ");
- // 上一次请求的参数
- Map
paramMap = pageBean.getMap(); - if(paramMap != null && paramMap.size() > 0) {
- Set
> entrySet = paramMap.entrySet(); - for (Entry
entry : entrySet) { - // 参数名
- String key = entry.getKey();
- // 参数值
- for (String value : entry.getValue()) {
- // 上一次请求的参数,再一次组装成了新的Form表单
- // 注意:page参数每次都会提交,我们需要避免
- if(!"page".equals(key)) {
- sb.append(" ");
- }
- }
- }
- }
- sb.append("");
-
- // 分页条
- sb.append("
"
); - sb.append("
- );
- sb.append(" href='javascript:gotoPage(1)'>首页");
- sb.append("
- );
- sb.append(" href='javascript:gotoPage("+pageBean.getPreivousPage()+")'><");// less than 小于号
- // sb.append("
- 1
"); - // sb.append("
- 2
"); - sb.append("
- "
+pageBean.getPage()+""); - sb.append("
- >
"); - sb.append("
- 尾页
"); - sb.append("
- 到第);
- sb.append(" type='text' id='skipPage' name='' />页");
- sb.append("
- );
- sb.append(" href='javascript:skipPage()'>确定");
- sb.append("
- 共"
+pageBean.getTotal()+"条"); - sb.append("");
-
- // 分页执行的JS代码
- sb.append("");
-
- return sb.toString();
- }
- }

- "1.0" encoding="UTF-8" ?>
-
- <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
- version="2.0">
-
- <description>zking 1.1 core librarydescription>
- <display-name>zking coredisplay-name>
- <tlib-version>1.1tlib-version>
- <short-name>zkingshort-name>
- <uri>http://jsp.veryedu.cnuri>
-
-
- <tag>
- <name>pagename>
- <tag-class>com.lz.tag.PageTagtag-class>
- <body-content>JSPbody-content>
- <attribute>
- <name>pageBeanname>
- <required>truerequired>
- <rtexprvalue>truertexprvalue>
- attribute>
- tag>
-
- taglib>
- package com.lz.controller;
-
- import com.lz.Biz.BookBiz;
- import com.lz.model.Book;
- import com.lz.utlis.PageBean;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
-
- import javax.servlet.http.HttpServletRequest;
- import java.util.List;
-
- /**
- * @author lz
- * @create 2023-09-08 16:20
- */
- @Controller
- @RequestMapping("/book")
- public class BookController {
- @Autowired
- private BookBiz bookBiz;
- //增加
- @RequestMapping("/add")
- public String add(Book book){
- int i = bookBiz.insertSelective(book);
- return "redirect:list";
- }
- //删除
- @RequestMapping("/del/{bid}")
- public String del(@PathVariable("bid")Integer bid){
- int i = bookBiz.deleteByPrimaryKey(bid);
- return "redirect:/book/list";
- }
- //修改
- @RequestMapping("/edit")
- public String edit(Book book){
- int i = bookBiz.updateByPrimaryKeySelective(book);
- return "redirect:list";
- }
- // 查询
- @RequestMapping("/list")
- //Book接收前台传递的参数
- public String list(Book book , HttpServletRequest request){
- PageBean pageBean=new PageBean();
- pageBean.setRequest(request);
- List
books = bookBiz.listPager(book, pageBean); - request.setAttribute("lst",books);
- request.setAttribute("pageBean",pageBean);
- return "book/list";
- }
- //数据回显
- @RequestMapping("/preSave")
- public String preSave(Book book, Model model){
- if (book!=null && book.getBid()!=null && book.getBid()!=0) {
- Book b = bookBiz.selectByPrimaryKey(book.getBid());
- model.addAttribute("b",b);
- }
- return "book/edit";
-
- }
-
- }
-
-
-
- <select id="listPager" resultType="com.lz.model.Book" parameterType="com.lz.model.Book" >
- select
- <include refid="Base_Column_List" />
- from t_mvc_book
- <where>
- <if test="bname !=null">
- bname like concat ('%',#{bname},'%')
- if>
- where>
- select>
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib uri="http://jsp.veryedu.cn" prefix="z"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- "Content-Type" content="text/html; charset=UTF-8">
-
- href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.css"
- rel="stylesheet">
-
- src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.js">
-
博客列表 -
- action="${pageContext.request.contextPath }/book/list" method="post">
- "form-group mb-2">
- "text" class="form-control-plaintext" name="bname"
- placeholder="请输入书籍名称">
-
-
- <%-- "pagination" value="false" type="hidden">--%>
-
-
-
"table table-striped">-
-
-
"col">书籍编号 -
"col">书籍名字 -
"col">书籍价格 -
"col">操作 -
-
-
-
var="b" items="${lst }"> -
-
${b.bid } -
${b.bname } -
${b.price } -
-
-
"${pageBean }">
3.4构建edit界面
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- "Content-Type" content="text/html; charset=UTF-8">
-
书籍编辑界面 - 书籍编号:"text" name="bid" value="${b.bid }">
- 书籍名字:"text" name="bname" value="${b.bname }">
- 书籍价格:"text" name="price" value="${b.price }">
- "submit">
3.5效果展示
1.增加

2.删除

3.修改

4.查询

-
相关阅读:
统信uos 1030 企业版 安装.net core环境
Apache Doris 2.x 版本【保姆级】安装+使用教程
【数据挖掘】2022数据挖掘之数据的高级处理(消除缺失值、数据离散化、合并等)
【开发心得】架构企业OA平台只需3步
如何使用HTML制作个人网站( web期末大作业)
基于PSD-ML算法的语音增强算法matlab仿真
证明素数/质数有无限多个
【排序算法】常见排序算法总结
基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码
C++ 异常处理 重新throw变量时的事件
-
原文地址:https://blog.csdn.net/lz17267861157/article/details/132736548