1.基本环境搭建

1、新建一Maven项目!ssmbuild , 添加web的支持

2、导入相关的pom依赖!

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.king</groupId>
  7. <artifactId>ssmbuild</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <!-- 依赖 junit,lombok,数据库驱动,连接池,servlet,jsp,mybatis,mybatis-spring,spring-->
  10. <dependencies>
  11. <dependency>
  12. <groupId>org.projectlombok</groupId>
  13. <artifactId>lombok</artifactId>
  14. <version>1.18.12</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>junit</groupId>
  18. <artifactId>junit</artifactId>
  19. <version>4.12</version>
  20. <scope>test</scope>
  21. </dependency>
  22. <dependency>
  23. <groupId>mysql</groupId>
  24. <artifactId>mysql-connector-java</artifactId>
  25. <version>5.1.47</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>com.mchange</groupId>
  29. <artifactId>c3p0</artifactId>
  30. <version>0.9.5.2</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>javax.servlet</groupId>
  34. <artifactId>servlet-api</artifactId>
  35. <version>2.5</version>
  36. </dependency>
  37. <dependency>
  38. <groupId>javax.servlet.jsp</groupId>
  39. <artifactId>jsp-api</artifactId>
  40. <version>2.2</version>
  41. </dependency>
  42. <dependency>
  43. <groupId>javax.servlet</groupId>
  44. <artifactId>jstl</artifactId>
  45. <version>1.2</version>
  46. </dependency>
  47. <dependency>
  48. <groupId>org.mybatis</groupId>
  49. <artifactId>mybatis</artifactId>
  50. <version>3.5.4</version>
  51. </dependency>
  52. <dependency>
  53. <groupId>org.mybatis</groupId>
  54. <artifactId>mybatis-spring</artifactId>
  55. <version>2.0.3</version>
  56. </dependency>
  57. <dependency>
  58. <groupId>org.springframework</groupId>
  59. <artifactId>spring-webmvc</artifactId>
  60. <version>5.2.6.RELEASE</version>
  61. </dependency>
  62. <dependency>
  63. <groupId>org.springframework</groupId>
  64. <artifactId>spring-jdbc</artifactId>
  65. <version>5.2.5.RELEASE</version>
  66. </dependency>
  67. <dependency>
  68. <groupId>org.aspectj</groupId>
  69. <artifactId>aspectjweaver</artifactId>
  70. <version>1.9.4</version>
  71. </dependency>
  72. </dependencies>
  73. </project>

3、Maven资源过滤设置

  1. <build>
  2. <resources>
  3. <resource>
  4. <directory>src/main/java</directory>
  5. <includes>
  6. <include>**/*.properties</include>
  7. <include>**/*.xml</include>
  8. </includes>
  9. <filtering>false</filtering>
  10. </resource>
  11. <resource>
  12. <directory>src/main/resources</directory>
  13. <includes>
  14. <include>**/*.properties</include>
  15. <include>**/*.xml</include>
  16. </includes>
  17. <filtering>false</filtering>
  18. </resource>
  19. </resources>
  20. </build>

4、建立基本的机构和配置

  • com.king.pojo
  • com.king.dao
  • com.king.service
  • com.king.controller
  • mybatis-config.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. </configuration>
  • applicationContext.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6. </beans>

2.Mybatis层编写

1、数据库配置文件 database.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. #如果是MySQL8.0+版本以上的,需要增加一个时区的设置;serverTimezone=Asia/Shanghai
  3. jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
  4. jdbc.username=root
  5. jdbc.password=123456

2、IDEA关联数据库

3、编写MyBatis的核心配置文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!-- 配置数据源,交给Spring去做-->
  7. <typeAliases>
  8. <package name="com.king.pojo"/>
  9. </typeAliases>
  10. <mappers>
  11. <mapper class="com.king.dao.BookMapper"/>
  12. </mappers>
  13. </configuration>

4、编写数据库对应的实体类 com.king.pojo.Books 使用lombok插件!

  1. package com.king.pojo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @AllArgsConstructor
  7. @NoArgsConstructor
  8. public class Books {
  9. private int bookID;
  10. private String bookName;
  11. private int bookCounts;
  12. private String detail;
  13. }

5、编写Dao层的 Mapper接口!

  1. package com.king.dao;
  2. import com.king.pojo.Books;
  3. import org.apache.ibatis.annotations.Param;
  4. import java.util.List;
  5. public interface BookMapper {
  6. // 增加一本书
  7. int addBook(Books books);
  8. // 删除一本书
  9. int deleteBookById(@Param("bookId") int id);
  10. // 修改一本书
  11. int updateBook(Books books);
  12. // 查询一本书籍
  13. Books queryBookById(@Param("bookId") int id);
  14. //查询全部的书籍
  15. List<Books> queryAllBook();
  16. }

6、编写接口对应的 Mapper.xml 文件。需要导入MyBatis的包;

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.king.dao.BookMapper">
  6. <insert id="addBook" parameterType="Books">
  7. insert into ssmbuild.books (bookName,bookCounts,detail)
  8. values (#{bookName},#{bookCounts},#{detail});
  9. </insert>
  10. <delete id="deleteBookById" parameterType="int">
  11. delete from ssmbuild.books where bookID = #{bookId}
  12. </delete>
  13. <update id="updateBook" parameterType="Books">
  14. update ssmbuild.books
  15. set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
  16. where bookID = #{bookID} ;
  17. </update>
  18. <select id="queryBookById" resultType="Books">
  19. select * from ssmbuild.books
  20. where bookID = #{bookId}
  21. </select>
  22. <select id="queryAllBook" resultType="Books">
  23. select * from ssmbuild.books
  24. </select>
  25. </mapper>

7、编写Service层的接口和实现类

接口:

  1. package com.king.service;
  2. import com.king.pojo.Books;
  3. import java.util.List;
  4. public interface BookService {
  5. // 增加一本书
  6. int addBook(Books books);
  7. // 删除一本书
  8. int deleteBookById(int id);
  9. // 修改一本书
  10. int updateBook(Books books);
  11. // 查询一本书籍
  12. Books queryBookById(int id);
  13. //查询全部的书籍
  14. List<Books> queryAllBook();
  15. }

实现类:

  1. package com.king.service;
  2. import com.king.dao.BookMapper;
  3. import com.king.pojo.Books;
  4. import java.util.List;
  5. public class BookServiceImpl implements BookService {
  6. //业务层调用dao层 组合dao层
  7. private BookMapper bookMapper;
  8. public void setBookMapper(BookMapper bookMapper) {
  9. this.bookMapper = bookMapper;
  10. }
  11. @Override
  12. public int addBook(Books books) {
  13. return bookMapper.addBook(books);
  14. }
  15. @Override
  16. public int deleteBookById(int id) {
  17. return bookMapper.deleteBookById(id);
  18. }
  19. @Override
  20. public int updateBook(Books books) {
  21. return bookMapper.updateBook(books);
  22. }
  23. @Override
  24. public Books queryBookById(int id) {
  25. return bookMapper.queryBookById(id);
  26. }
  27. @Override
  28. public List<Books> queryAllBook() {
  29. return bookMapper.queryAllBook();
  30. }
  31. }

3.Spring层整合

1、配置Spring整合MyBatis,我们这里数据源使用c3p0连接池;

2、我们去编写Spring整合Mybatis的相关的配置文件;spring-dao.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. https://www.springframework.org/schema/context/spring-context.xsd">
  9. <!-- 1.关联数据库配置文件-->
  10. <context:property-placeholder location="classpath:database.properties"/>
  11. <!-- 2.连接池
  12. dbcp:半自动化操作,不能自动连接
  13. c3p0:自动化操作(自动化的加载配置文件,并且可以自动设置到对象中!)
  14. druid:
  15. -->
  16. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  17. <property name="driverClass" value="${jdbc.driver}"/>
  18. <property name="jdbcUrl" value="${jdbc.url}"/>
  19. <property name="user" value="${jdbc.username}"/>
  20. <property name="password" value="${jdbc.password}"/>
  21. <!-- c3p0连接池的私有属性 -->
  22. <property name="maxPoolSize" value="30"/>
  23. <property name="minPoolSize" value="10"/>
  24. <!-- 关闭连接后不自动commit -->
  25. <property name="autoCommitOnClose" value="false"/>
  26. <!-- 获取连接超时时间 -->
  27. <property name="checkoutTimeout" value="10000"/>
  28. <!-- 当获取连接失败重试次数 -->
  29. <property name="acquireRetryAttempts" value="2"/>
  30. </bean>
  31. <!-- 3.sqlSessionFactory -->
  32. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  33. <property name="dataSource" ref="dataSource"/>
  34. <!-- 绑定Mybatis的配置文件-->
  35. <property name="configLocation" value="classpath:mybatis-config.xml"/>
  36. </bean>
  37. <!-- 配置dao接口扫描包,动态实现dao接口注入到容器-->
  38. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  39. <!-- 注入sqlSessionFactory-->
  40. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  41. <!-- 要扫描的dao包-->
  42. <property name="basePackage" value="com.king.dao"/>
  43. </bean>
  44. </beans>

3、Spring整合service层

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
  7. <!-- 1.扫描service下的包-->
  8. <context:component-scan base-package="com.king.service"/>
  9. <!-- 2.将所有的业务类,注入到Spring,可以通过配置,或者注解实现-->
  10. <bean id="BookServiceImpl" class="com.king.service.BookServiceImpl">
  11. <property name="bookMapper" ref="bookMapper"/>
  12. </bean>
  13. <!-- 3.声明式事务-->
  14. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  15. <!-- 注入数据源-->
  16. <property name="dataSource" ref="dataSource"/>
  17. </bean>
  18. </beans>

4.SpringMVC层整合

1、web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5. version="4.0">
  6. <!-- DispatcherServlet-->
  7. <servlet>
  8. <servlet-name>springmvc</servlet-name>
  9. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  10. <init-param>
  11. <param-name>contextConfigLocation</param-name>
  12. <param-value>classpath:spring-mvc.xml</param-value>
  13. </init-param>
  14. <load-on-startup>1</load-on-startup>
  15. </servlet>
  16. <servlet-mapping>
  17. <servlet-name>springmvc</servlet-name>
  18. <url-pattern>/</url-pattern>
  19. </servlet-mapping>
  20. <!-- 乱码过滤-->
  21. <filter>
  22. <filter-name>encodingFilter</filter-name>
  23. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  24. <init-param>
  25. <param-name>encoding</param-name>
  26. <param-value>utf-8</param-value>
  27. </init-param>
  28. </filter>
  29. <filter-mapping>
  30. <filter-name>encodingFilter</filter-name>
  31. <url-pattern>/*</url-pattern>
  32. </filter-mapping>
  33. <!-- Session-->
  34. <session-config>
  35. <session-timeout>15</session-timeout>
  36. </session-config>
  37. </web-app>

2、spring-mvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/mvc
  9. http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
  10. <!-- 注解驱动-->
  11. <mvc:annotation-driven/>
  12. <!-- 静态资源过滤-->
  13. <mvc:default-servlet-handler/>
  14. <!-- 扫描包:controller-->
  15. <context:component-scan base-package="com.king.controller"/>
  16. <!-- 视图解析器-->
  17. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
  18. <property name="prefix" value="/WEB-INF/jsp/"/>
  19. <property name="suffix" value=".jsp"/>
  20. </bean>
  21. </beans>

3、Spring配置整合文件,applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6. <import resource="classpath:spring-dao.xml"/>
  7. <import resource="classpath:spring-service.xml"/>
  8. <import resource="classpath:spring-mvc.xml"/>
  9. </beans>

5.BookController 类编写

1、方法:

  1. package com.king.controller;
  2. import com.king.pojo.Books;
  3. import com.king.service.BookService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.beans.factory.annotation.Qualifier;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.Model;
  8. import org.springframework.web.bind.annotation.PathVariable;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. @Controller
  13. @RequestMapping("/book")
  14. public class BookController {
  15. //controller 调service层
  16. @Autowired
  17. @Qualifier("BookServiceImpl")
  18. private BookService bookService;
  19. //查询全部的书籍,并且返回到一个书籍展示页面
  20. @RequestMapping("/allBook")
  21. public String list(Model model){
  22. List<Books> books = bookService.queryAllBook();
  23. model.addAttribute("list",books);
  24. return "allBook";
  25. }
  26. //跳转到增加书籍页面
  27. @RequestMapping("/toAddBook")
  28. public String toAddPaper(){
  29. return "addBook";
  30. }
  31. //添加书籍的请求
  32. @RequestMapping("/addBook")
  33. public String addBook(Books books){
  34. System.out.println("addBook=>"+books);
  35. bookService.addBook(books);
  36. return "redirect:/book/allBook"; //重定向到 @RequestMapping("/allBook") 请求
  37. }
  38. //跳转到修改界面
  39. @RequestMapping("/toUpdate")
  40. public String toUpdatePaper(int id,Model model){
  41. // System.out.println(id);
  42. Books books = bookService.queryBookById(id);
  43. // System.out.println(books);
  44. model.addAttribute("QBooks",books);
  45. return "updateBook";
  46. }
  47. //修改书籍
  48. @RequestMapping("/updateBook")
  49. public String updateBook(Books books){
  50. System.out.println("updateBook==>"+books);
  51. int i = bookService.updateBook(books);
  52. if(i > 0){
  53. System.out.println("修改成功");
  54. }
  55. return "redirect:/book/allBook";
  56. }
  57. //删除书籍
  58. @RequestMapping("/deleteBook/{bookId}")
  59. public String deleteBook(@PathVariable("bookId") int id){
  60. bookService.deleteBookById(id);
  61. return "redirect:/book/allBook";
  62. }
  63. //查询书籍
  64. @RequestMapping("/queryBook")
  65. public String queryBook(String queryBookName,Model model){
  66. Books books = bookService.queryBookName(queryBookName);
  67. List<Books> list = new ArrayList<Books>();
  68. list.add(books);
  69. if(books == null){
  70. list = bookService.queryAllBook();
  71. model.addAttribute("error","未查到");
  72. }
  73. model.addAttribute("list",list);
  74. return "allBook";
  75. }
  76. }

2、编写首页 index.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>首页</title>
  5. <style>
  6. h3{
  7. width: 180px;
  8. height: 38px;
  9. margin: 100px auto;
  10. text-align: center;
  11. line-height: 38px;
  12. background: deepskyblue;
  13. border-radius: 10px;
  14. }
  15. a{
  16. text-decoration: none;
  17. color: black;
  18. font-size: 18px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h3>
  24. <a href="${pageContext.request.contextPath}/book/allBook">进入书籍展示页面</a>
  25. </h3>
  26. </body>
  27. </html>

3、书籍列表页面

  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <html>
  4. <head>
  5. <title>书籍展示</title>
  6. <%-- bootstrap--%>
  7. <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  8. </head>
  9. <body>
  10. <div class="container">
  11. <div class="row clearfix">
  12. <div class="col-md-12 column">
  13. <div class="page-header">
  14. <h1>
  15. <small>书籍列表 —————— 显示所有书籍</small>
  16. </h1>
  17. </div>
  18. </div>
  19. </div>
  20. <div class="row">
  21. <div class="col-md-4 column">
  22. <%-- toAddBook--%>
  23. <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook">新增书籍</a>
  24. <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/allBook">显示全部书籍</a>
  25. </div>
  26. <div class="col-md-8 column">
  27. <%-- 查询书籍--%>
  28. <form class="form-inline" action="${pageContext.request.contextPath}/book/queryBook" method="post" style="float: right">
  29. <span style="color: red;font-weight: bold">${error}</span>
  30. <input type="text" name="queryBookName" class="form-control" placeholder="请输入要查询的书籍名称">
  31. <input type="submit" class="btn btn-primary" value="查询">
  32. </form>
  33. </div>
  34. </div>
  35. <div class="row clearfix">
  36. <div class="col-md-12 column">
  37. <table class="table table-hover table-striped">
  38. <thead>
  39. <tr>
  40. <th>书籍编号</th>
  41. <th>书籍名称</th>
  42. <th>书籍数量</th>
  43. <th>书籍详情</th>
  44. </tr>
  45. </thead>
  46. <%-- 书籍从数据库查询,从list遍历出来:foreach--%>
  47. <tbody>
  48. <c:forEach var="book" items="${list}">
  49. <tr>
  50. <td>${book.bookID}</td>
  51. <td>${book.bookName}</td>
  52. <td>${book.bookCounts}</td>
  53. <td>${book.detail}</td>
  54. <td>
  55. <a href="${pageContext.request.contextPath}/book/toUpdate?id=${book.bookID}">修改</a>
  56. &nbsp; | &nbsp;
  57. <a href="${pageContext.request.contextPath}/book/deleteBook/${book.bookID}">删除</a>
  58. </td>
  59. </tr>
  60. </c:forEach>
  61. </tbody>
  62. </table>
  63. </div>
  64. </div>
  65. </div>
  66. </body>
  67. </html>

4、添加书籍页面:addBook.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  6. </head>
  7. <body>
  8. <div class="container">
  9. <div class="row clearfix">
  10. <div class="col-md-12 column">
  11. <div class="page-header">
  12. <h1>
  13. <small>新增书籍</small>
  14. </h1>
  15. </div>
  16. </div>
  17. </div>
  18. <form action="${pageContext.request.contextPath}/book/addBook" method="post">
  19. 书籍名称:<input type="text" class="form-control" name="bookName" required><br><br><br>
  20. 书籍数量:<input type="text" class="form-control" name="bookCounts" required><br><br><br>
  21. 书籍详情:<input type="text" class="form-control" name="detail" required><br><br><br>
  22. <input class="btn btn-default btn-lg" type="submit" value="添加">
  23. </form>
  24. </div>
  25. </body>
  26. </html>

5、修改书籍页面 updateBook.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>修改书籍</title>
  5. <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  6. </head>
  7. <body>
  8. <div class="container">
  9. <div class="row clearfix">
  10. <div class="col-md-12 column">
  11. <div class="page-header">
  12. <h1>
  13. <small>修改书籍</small>
  14. </h1>
  15. </div>
  16. </div>
  17. </div>
  18. <form action="${pageContext.request.contextPath}/book/updateBook" method="post">
  19. <input type="hidden" name="bookID" value="${QBooks.bookID}">
  20. 书籍名称:<input type="text" class="form-control" value="${QBooks.bookName}" name="bookName" required><br><br><br>
  21. 书籍数量:<input type="text" class="form-control" value="${QBooks.bookCounts}" name="bookCounts" required><br><br><br>
  22. 书籍详情:<input type="text" class="form-control" value="${QBooks.detail}" name="detail" required><br><br><br>
  23. <input class="btn btn-default btn-lg" type="submit" value="修改">
  24. </form>
  25. </div>
  26. </body>
  27. </html>

6. 开启Tomcat 运行

首页

书籍展示

新增书籍

修改书籍

查询

删除



SSM框架整合以及书籍管理CRUD系统的更多相关文章

  1. SpringMVC--从理解SpringMVC执行流程到SSM框架整合

    前言 SpringMVC框架是SSM框架中继Spring另一个重要的框架,那么什么是SpringMVC,如何用SpringMVC来整合SSM框架呢?下面让我们详细的了解一下. 注:在学习SpringM ...

  2. JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合

    1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...

  3. SSM框架整合图书管理项目

    SSM框架整合 1.建立简单的maven项目 2.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <p ...

  4. JavaWeb之ssm框架整合,用户角色权限管理

    SSM框架整合 Spring SpringMVC MyBatis 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastjson 5, aspectwea ...

  5. ssm框架整合-过程总结(第二次周总结)

    距离上次写博客已经有4.5天的时间了. 这次写博客目的是总结一下项目开始到现在,过程中遇到的问题.和学到的知识.经验. 初略总结下自己从中学到的: Spring :在学习中被反复强调的Ioc(反转控制 ...

  6. 【计理01组08号】SSM框架整合

    [计理01组08号]SSM框架整合 数据库准备 本次课程使用 MySQL 数据库.首先启动 mysql : sudo service mysql start 然后在终端下输入以下命令,进入到 MySQ ...

  7. SpringMVC详解及SSM框架整合项目

    SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架: ...

  8. SSM框架整合项目 :租房管理系统

    使用ssm框架整合,oracle数据库 框架: Spring SpringMVC MyBatis 导包: 1, spring 2, MyBatis 3, mybatis-spring 4, fastj ...

  9. 基于maven的ssm框架整合

    基于maven的ssm框架整合 第一步:通过maven建立一个web项目.                第二步:pom文件导入jar包                              (1 ...

随机推荐

  1. SQL SERVER sa无法登陆的问题

    安装的时候选择了 Windows 身份验证模式,只能windows内置账户登录解决方法:先登录(SQL Server Management Studio ),点服务器,右键->属性->安全 ...

  2. Canvas 画圆

    原文地址:http://hi.baidu.com/lj2tj/item/557d8d1a65adfa721009b58b --------------------------------------- ...

  3. mysql全方位知识大盘点

    一.mysql都有哪些存储引擎?各自的特点是什么? 引擎 事务 锁 主键 索引 外键 数据结构 适用场景 InnoDB 支持 行锁.表锁 必须有主键,没有设置会自动创建 主键索引和数据在一起,其他索引 ...

  4. 太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!

    大家好,我是良许. 作为 Linux 用户,大家肯定在 Linux 终端下敲过无数的命令.有的命令很短,比如:ls .cd .pwd 之类,这种命令大家毫无压力.但是,有些命令就比较长了,比如: $ ...

  5. java中碰到的异常

    mapper接口中找不到相应方法 解决:配置xml读取路径错误 org.apache.ibatis.binding.BindingException: Invalid bound statement ...

  6. swiper基本使用

    参数名 类型 是否必填 描述 swiperContainer HTMLElement or string 必选 Swiper容器的css选择器,例如".swiper-container&qu ...

  7. UIAutomator2的API文档(一)

    检查并维持设备端守护进程处于运行状态,应该是重启了atx守护进程:d.healthcheck() 1.隐式等待 import uiautomator2 as u2serialno = '7f3dec6 ...

  8. uiautomator2通过wifi操作手机

    参考来源:https://www.cnblogs.com/c-x-a/p/11176066.html,有部分不适合当前版本的做了修改 1.手机通过USB连接电脑,先开启远程adb模式,操作如下(可以指 ...

  9. APP定位元素之UiSelector

    1.UiSelector 类介绍 功能:通过各种属性与节点关系定位组件 操作步骤:找到对象->操作对象 2.四中匹配关系的介绍 (1)完全匹配 (2)包含匹配 (3)正则匹配 (4)起始匹 例子 ...

  10. 【C++】变量

    注意:以下内容摘自文献[1],修改了部分内容. 1.变量:在程序运行期间其值可以改变的量称为变量.一个变量应该有一个名字,并在内存中占据一定的存储单元,在该存储单元中存放变量的值.变量名代表内存中的一 ...