ssm-book 整合案例

一:环境及要求

环境:

  • IDEA最新版
  • MySQL 5.7.19 
  • Tomcat 9 
  • Maven 3.6    

要求:

  • 需要掌握 MyBatis;Spring;SpringMVC;MySQL数据库以及简单的前端知识 

二:项目编码

1:搭建数据库

1-1:创建一个数据库

 1 CREATE DATABASE `ssm-books`;
 2 
 3 USE `ssm-books`;
 4 
 5 CREATE TABLE `books` (
 6   `bookId` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',
 7   `bookName` VARCHAR(100) NOT NULL COMMENT '书名',
 8   `bookNumber` INT(11) NOT NULL COMMENT '数量',
 9   `bookPrice` INT(20) NOT NULL COMMENT '价格',
10   KEY `bookId` (`bookId`)
11 ) ENGINE=INNODB DEFAULT CHARSET=utf8
12 
13 INSERT  INTO `books`(`bookId`,`bookName`,`bookNumber`,`bookPrice`)VALUES 
14 (1,'西游记',5,55),
15 (2,'水浒传',6,66),
16 (3,'三国演义',7,77);

1-2:创建数据库需要的database.properties

jdbc.Driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ssm-books?useSSL=true&useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

1-3:导入数据库驱动包

1 <dependency>
2       <groupId>mysql</groupId>
3       <artifactId>mysql-connector-java</artifactId>
4       <version>5.1.47</version>
5 </dependency>

1-4:IDEA关联数据库

2:编写数据库对应的实体类及Dao层

2-1:实体类  com.qsh.pojo.Books

 1 public class Books {
 2 
 3     private int bookId;
 4     private String bookName;
 5     private int bookNumber;
 6     private int bookPrice;
 7 
 8     public Books() {
 9     }
10 
11     public Books(int bookId, String bookName, int bookNumber, int bookPrice) {
12         this.bookId = bookId;
13         this.bookName = bookName;
14         this.bookNumber = bookNumber;
15         this.bookPrice = bookPrice;
16     }
17 
18     public int getBookId() {
19         return bookId;
20     }
21 
22     public void setBookId(int bookId) {
23         this.bookId = bookId;
24     }
25 
26     public String getBookName() {
27         return bookName;
28     }
29 
30     public void setBookName(String bookName) {
31         this.bookName = bookName;
32     }
33 
34     public int getBookNumber() {
35         return bookNumber;
36     }
37 
38     public void setBookNumber(int bookNumber) {
39         this.bookNumber = bookNumber;
40     }
41 
42     public int getBookPrice() {
43         return bookPrice;
44     }
45 
46     public void setBookPrice(int bookPrice) {
47         this.bookPrice = bookPrice;
48     }
49 
50     @Override
51     public String toString() {
52         return "Books{" +
53                 "bookId=" + bookId +
54                 ", bookName='" + bookName + '\'' +
55                 ", bookNumber=" + bookNumber +
56                 ", bookPrice=" + bookPrice +
57                 '}';
58     }
59 }

2-2:Dao层接口  com.qsh.dao.BookDao

 1 import org.apache.ibatis.annotations.Param;
 2 import com.qsh.pojo.Books;
 3 import java.util.List;
 4 
 5 public interface BookDao {
 6 
 7     //增加books
 8     int addBook(Books books);
 9 
10     //通过id删除books
11     int delBookById(@Param("bookId") int bookId);
12 
13     //更新books
14     int upBook(Books books);
15 
16     //通过id获取books
17     Books allBookById(@Param("bookId") int bookId);
18 
19     //获取全部books
20     List<Books> allBook();
21 }

2-3:编写接口对应的Mapper文件时需要导入MyBatis的包

1 <dependency>
2       <groupId>org.mybatis</groupId>
3       <artifactId>mybatis</artifactId>
4       <version>3.5.1</version>
5 </dependency>

2-4:编写BookMapper.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">

<mapper namespace="com.qsh.dao.BookDao">

    <!--1.增加books-->
    <insert id="addBook" parameterType="Books">
        insert into books (bookId,bookName,bookNumber,bookPrice)
        values (#{bookId},#{bookName},#{bookNumber},#{bookPrice})
    </insert>

    <!--2.通过id删除books-->
    <delete id="delBookById" parameterType="Books">
        delete from books where bookId=#{bookId}
    </delete>

    <!--3.更新books-->
    <update id="upBook" parameterType="Books">
        update books set bookName=#{bookName},bookNumber=#{bookNumber},bookPrice=#{bookPrice}
        where bookId=#{bookId}
    </update>

    <!--4.通过id获取books-->
    <select id="allBookById" resultType="Books">
        select * from books where bookId=#{bookId}
    </select>

    <!--5.获取全部books-->
    <select id="allBook" resultType="Books">
        select * from books
    </select>
</mapper>

2-5:编写Mybatis-config.xml配置文件;配置别名,注册映射文件  

<?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE configuration
                PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
                "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<!--别名-->
<typeAliases>
    <package name="com.qsh.pojo"/>
</typeAliases>

<!--关联映射文件-->
<mappers>
    <mapper resource="com/qsh/dao/BookMapper.xml"/>
</mappers>

</configuration>

3:编写Service层的接口和实现类

3-1:接口  com.qsh.service.BookService

 1 import com.qsh.pojo.Books;
 2 import org.apache.ibatis.annotations.Param;
 3 import java.util.List;
 4 
 5 public interface BookService {
 6 
 7     //增加books
 8     int addBook(Books books);
 9 
10     //通过id删除books
11     int delBookById(@Param("bookId") int bookId);
12 
13     //更新books
14     int upBook(Books books);
15 
16     //通过id获取books
17     Books allBookById(@Param("bookId") int bookId);
18 
19     //获取全部books
20     List<Books> allBook();
21 }

3-2:实现类  com.qsh.service.BookServiceImpl

 1 import com.qsh.dao.BookDao;
 2 import com.qsh.pojo.Books;
 3 import java.util.List;
 4 
 5 public class BookServiceImpl implements BookService {
 6     
 7     //组合Dao层,设置一个set接口,方便spring管理
 8     private BookDao bookDao;
 9 
10     public void setBookDao(BookDao bookDao) {
11         this.bookDao = bookDao;
12     }
13 
14     @Override
15     public int addBook(Books books) {
16 
17         return bookDao.addBook(books);
18     }
19 
20     @Override
21     public int delBookById(int bookId) {
22         return bookDao.delBookById(bookId);
23     }
24 
25     @Override
26     public int upBook(Books books) {
27 
28         return bookDao.upBook(books);
29     }
30 
31     @Override
32     public Books allBookById(int bookId) {
33 
34         return bookDao.allBookById(bookId);
35     }
36 
37     @Override
38     public List<Books> allBook() {
39         return bookDao.allBook();
40     }
41 }

4:Spring整合MyBatis

4-1:我们这里数据源使用c3p0连接池;先导入相关jar包

 1 <!--1.mybatis-spring整合包 -->
 2     <dependency>
 3       <groupId>org.mybatis</groupId>
 4       <artifactId>mybatis-spring</artifactId>
 5       <version>1.3.1</version>
 6     </dependency>
 7 
 8     <!-- 2.spring mvc和 spring 系列包 -->
 9     <dependency>
10       <groupId>org.springframework</groupId>
11       <artifactId>spring-webmvc</artifactId>
12       <version>4.3.24.RELEASE</version>
13     </dependency>
14     <dependency>
15       <groupId>org.springframework</groupId>
16       <artifactId>spring-jdbc</artifactId>
17       <version>4.3.24.RELEASE</version>
18     </dependency>
19 
20     <!-- 3.第三方数据源:c3p0 -->
21     <dependency>
22       <groupId>com.mchange</groupId>
23       <artifactId>c3p0</artifactId>
24       <version>0.9.5.2</version>
25     </dependency>

4-2:配置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     http://www.springframework.org/schema/context/spring-context.xsd">
 9     
10     <!-- 1.关联数据库-->
11     <context:property-placeholder location="classpath:database.properties"/>
12 
13     <!-- 2.数据库连接池 --><!-- c3p0:自动化操作(自动的加载配置文件 并且设置到对象里面)-->
14     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
15         <!-- 2-1.配置连接池属性 -->
16         <property name="driverClass" value="${jdbc.Driver}"/>
17         <property name="jdbcUrl" value="${jdbc.url}"/>
18         <property name="user" value="${jdbc.username}"/>
19         <property name="password" value="${jdbc.password}"/>
20     </bean>
21 
22     <!-- 3.配置SqlSessionFactory对象-->
23     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
24         <!-- 3-1.注入数据库连接池-->
25         <property name="dataSource" ref="dataSource"/>
26         <!-- 3-2.配置mybatis全局配置文件:mybatis-config.xml-->
27         <property name="configLocation" value="classpath:mybatis-config.xml"/>
28     </bean>
29 
30     <!-- 4.配置扫描Dao接口包,动态实现Dao接口注入到spring容器中-->
31     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
32         <!-- 4-1.注入sqlSessionFactory-->
33         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
34         <!-- 4-2.给出需要扫描Dao接口包-->
35         <property name="basePackage" value="com.qsh.dao"/>
36     </bean>
37 
38 </beans>

5:Spring整合service层

5-1:配置spring-service.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     http://www.springframework.org/schema/context/spring-context.xsd">
 9     
10     <!-- 1.扫描service相关的bean-->
11     <context:component-scan base-package="com.qsh.service"/>
12 
13     <!-- 2.BookServiceImpl注入到IOC容器中-->
14     <bean id="BookServiceImpl" class="com.qsh.service.BookServiceImpl">
15         <property name="bookDao" ref="bookDao"/>
16     </bean>
17 
18 </beans>

6:SpringMVC相关配置

6-1:配置web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xmlns="http://java.sun.com/xml/ns/javaee"
 4          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 5          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 6          id="WebApp_ID" version="3.0">
 7 
 8   <!-- 1.注册DispatcherServlet-->
 9   <servlet>
10     <servlet-name>DispatcherServlet</servlet-name>
11     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
12 
13     <!-- 2.关联spring配置文件-->
14     <init-param>
15       <param-name>contextConfigLocation</param-name>
16       <param-value>classpath:applicationContext.xml</param-value>
17     </init-param>
18     <load-on-startup>1</load-on-startup>
19   </servlet>
20   <servlet-mapping>
21     <servlet-name>DispatcherServlet</servlet-name>
22     <url-pattern>/</url-pattern>
23   </servlet-mapping>
24 
25 
26   <!-- 3.处理乱码问题-->
27   <filter>
28     <filter-name>encodingFilter</filter-name>
29     <filter-class>
30       org.springframework.web.filter.CharacterEncodingFilter
31     </filter-class>
32     <init-param>
33       <param-name>encoding</param-name>
34       <param-value>utf-8</param-value>
35     </init-param>
36   </filter>
37   <filter-mapping>
38     <filter-name>encodingFilter</filter-name>
39     <url-pattern>/*</url-pattern>
40   </filter-mapping>
41 
42 </web-app>

6-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:context="http://www.springframework.org/schema/context"
 5        xmlns:mvc="http://www.springframework.org/schema/mvc"
 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/context
 9     http://www.springframework.org/schema/context/spring-context.xsd
10     http://www.springframework.org/schema/mvc
11     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
12     
13     <!-- 1.开启springMVC注解模式-->
14     <mvc:annotation-driven/>
15 
16     <!-- 2.静态资源默认servlet设置-->
17     <mvc:default-servlet-handler/>
18 
19     <!-- 3.配置jsp 显示ViewResolver-->
20     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
21         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
22         <property name="prefix" value="/WEB-INF/jsp/"/>
23         <property name="suffix" value=".jsp"/>
24     </bean>
25 
26     <!-- 4.扫描web相关的bean-->
27     <context:component-scan base-package="com.qsh.controller"/>
28 
29 </beans>

7:Spring配置整合文件,applicationContext.xml

7-1:我们将前面的spring-dao.xml   spring-service.xml   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        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5        http://www.springframework.org/schema/beans/spring-beans.xsd">
 6     
 7     <import resource="spring/spring-dao.xml"/>
 8     <import resource="spring/spring-mvc.xml"/>
 9     <import resource="spring/spring-service.xml"/>
10     
11 </beans>

8:编写BookController类

8-1:导入jsp和servlet的包

 1 <!--1.servlet -->
 2     <dependency>
 3       <groupId>javax.servlet</groupId>
 4       <artifactId>javax.servlet-api</artifactId>
 5       <version>3.0.1</version>
 6     </dependency>
 7 
 8     <!-- 2.jsp -->
 9     <dependency>
10       <groupId>javax.servlet.jsp</groupId>
11       <artifactId>jsp-api</artifactId>
12       <version>2.2</version>
13     </dependency>
14 
15     <!-- 3.JSTL -->
16     <dependency>
17       <groupId>javax.servlet</groupId>
18       <artifactId>jstl</artifactId>
19       <version>1.2</version>
20     </dependency>

8-2:com.qsh.controller.BookController

 1 import com.qsh.pojo.Books;
 2 import com.qsh.service.BookService;
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.beans.factory.annotation.Qualifier;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.ui.Model;
 7 import org.springframework.web.bind.annotation.PathVariable;
 8 import org.springframework.web.bind.annotation.RequestMapping;
 9 import java.util.List;
10 
11 @Controller
12 @RequestMapping("/book")
13 public class BookController {
14 
15     @Autowired
16     @Qualifier("BookServiceImpl")
17     private BookService bookService;
18 
19     //展示全部书籍
20     @RequestMapping("/allBook")
21     public String allBook(Model model){
22         List<Books> list = bookService.allBook();
23         model.addAttribute("list",list);
24         return "allBook";
25     }
26 
27     //跳转到新增书籍页面
28     @RequestMapping("/toAddBook")
29     public String toAddBook(){
30         return "addBook";
31     }
32 
33     //增加书籍页面
34     @RequestMapping("/addBook")
35     public String addBook(Books books){
36         bookService.addBook(books);
37         return "redirect:/book/allBook"; //重定向到首页
38     }
39 
40     //跳转到修改页面
41     @RequestMapping("/toUpBook")
42     public String toUpdateBook(int id,Model model){
43         Books books = bookService.allBookById(id);
44         model.addAttribute("book",books);
45         return "upBook";
46     }
47 
48     //修改书籍
49     @RequestMapping("/upBook")
50     public String updateBook(Books books,Model model){
51         bookService.upBook(books);
52         //更新最新的书籍
53         Books books1 = bookService.allBookById(books.getBookId());
54         model.addAttribute("books",books1);
55         return "redirect:/book/allBook"; //重定向到首页
56     }
57     
58     //删除书籍,请使用restful风格
59     @RequestMapping("/del/{bookID}")
60     public String deleteBook(@PathVariable("bookID") int id){
61         bookService.delBookById(id);
62         return "redirect:/book/allBook"; //重定向到首页
63     }
64 }

9:前端视图层

9-1:index.jsp

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

9-2:allbook.jsp

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <%--使用JSTL标签--%>
 3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 4 
 5 <html>
 6 <head>
 7     <title>全部书籍</title>
 8 
 9     <%--引用BootStarp--%>
10     <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
11 
12 </head>
13 <body>
14 
15 <div class="container">
16 
17     <%--标题--%>
18     <div class="row clearfix">
19         <div class="col-md-12 column">
20             <div class="page-header">
21                 <h1>
22                     <small>书籍列表--显示所有书籍</small>
23                 </h1>
24             </div>
25         </div>
26     </div>
27 
28     <%--增加--%>
29     <div class="row">
30         <div class="col-md-4 column">
31             <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook">新增</a>
32         </div>
33     </div>
34 
35     <%--展示页面:表格,修改,删除--%>
36     <div class="row clearfix">
37         <div class="col-md-12 column">
38             <table class="table table-hover table-striped">
39 
40                 <%--表头--%>
41                 <thead>
42                 <tr>
43                     <th>书籍编号</th>
44                     <th>书籍名称</th>
45                     <th>书籍数量</th>
46                     <th>书籍价格</th>
47                     <%--操作:修改,删除--%>
48                     <th>操作</th>
49                 </tr>
50                 </thead>
51                 <%--表的内容--%>
52                 <tbody>
53                 <c:forEach var="book" items="${list}">
54                     <tr>
55                         <td>${book.getBookId()}</td>
56                         <td>${book.getBookName()}</td>
57                         <td>${book.getBookNumber()}</td>
58                         <td>${book.getBookPrice()}</td>
59                         <td>
60                             <a href="${pageContext.request.contextPath}/book/toUpBook?id=${book.getBookId()}">更改</a> |
61                             <a href="${pageContext.request.contextPath}/book/del/${book.getBookId()}">删除</a>
62                         </td>
63                     </tr>
64                 </c:forEach>
65 
66                 </tbody>
67 
68             </table>
69         </div>
70     </div>
71 
72 </div>
73 
74 </body>
75 </html>

9-3:addBook.jsp

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <html>
 3 <head>
 4     <title>新增书籍</title>
 5     <%--引用BootStarp--%>
 6     <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
 7 
 8 </head>
 9 <body>
10 
11 <%--显示要增加的书籍信息--%>
12 <h1>增加书籍</h1>
13 
14 <form method="post" action="${pageContext.request.contextPath}/book/addBook">
15     书籍名称:<input type="text" name="bookName"> <br/><br/>
16     书籍数量:<input type="text" name="bookNumber"> <br/><br/>
17     书籍价格:<input type="text" name="bookPrice"> <br/><br/>
18     <input type="submit"/>
19 </form>
20 
21 </body>
22 </html>

9-4:upBook.jsp

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 2 <html>
 3 <head>
 4     <title>修改书籍</title>
 5 </head>
 6 <body>
 7 
 8 <%--书籍原来的信息,修改按钮--%>
 9 <h1>修改书籍信息</h1>
10 <hr>
11 
12 <form action="${pageContext.request.contextPath}/book/upBook" method="post">
13     <%--id--%>
14     <input type="hidden" name="bookId" value="${book.getBookId()}"/>
15     书籍名称:<input type="text" name="bookName" value="${book.getBookName()}"> <br/><br/>
16     书籍数量:<input type="text" name="bookNumber" value="${book. getBookNumber()}"> <br/><br/>
17     书籍价格:<input type="text" name="bookPrice" value="${book.bookPrice}"> <br/><br/>
18     <input type="submit" value="提交"/>
19 </form>
20 
21 </body>
22 </html>

10:Maven文件汇总

记得Maven资源导入问题

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <project xmlns="http://maven.apache.org/POM/4.0.0" 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 
  7   <groupId>com.qsh</groupId>
  8   <artifactId>ssm-book-demo</artifactId>
  9   <version>1.0-SNAPSHOT</version>
 10   <packaging>war</packaging>
 11 
 12   <name>ssm-book-demo Maven Webapp</name>
 13   <!-- FIXME change it to the project's website -->
 14   <url>http://www.example.com</url>
 15 
 16   <properties>
 17     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 18     <maven.compiler.source>1.7</maven.compiler.source>
 19     <maven.compiler.target>1.7</maven.compiler.target>
 20   </properties>
 21 
 22   <dependencies>
 23     <dependency>
 24       <groupId>junit</groupId>
 25       <artifactId>junit</artifactId>
 26       <version>4.11</version>
 27       <scope>test</scope>
 28     </dependency>
 29 
 30     <!-- 1-1.mybatis的包-->
 31     <dependency>
 32       <groupId>org.mybatis</groupId>
 33       <artifactId>mybatis</artifactId>
 34       <version>3.5.1</version>
 35     </dependency>
 36 
 37     <!-- 1-2.连接数据库的驱动包-->
 38     <dependency>
 39       <groupId>mysql</groupId>
 40       <artifactId>mysql-connector-java</artifactId>
 41       <version>5.1.47</version>
 42     </dependency>
 43 
 44     <!-- 2-1.mybatis-spring整合包-->
 45     <dependency>
 46       <groupId>org.mybatis</groupId>
 47       <artifactId>mybatis-spring</artifactId>
 48       <version>1.3.1</version>
 49     </dependency>
 50 
 51     <!-- 2-2.spring mvc和 spring 系列包-->
 52     <dependency>
 53       <groupId>org.springframework</groupId>
 54       <artifactId>spring-webmvc</artifactId>
 55       <version>4.3.24.RELEASE</version>
 56     </dependency>
 57     <dependency>
 58       <groupId>org.springframework</groupId>
 59       <artifactId>spring-jdbc</artifactId>
 60       <version>4.3.24.RELEASE</version>
 61     </dependency>
 62 
 63     <!-- 2-3.第三方数据源:c3p0-->
 64     <dependency>
 65       <groupId>com.mchange</groupId>
 66       <artifactId>c3p0</artifactId>
 67       <version>0.9.5.2</version>
 68     </dependency>
 69 
 70     <!-- 3-1.servlet-->
 71     <dependency>
 72       <groupId>javax.servlet</groupId>
 73       <artifactId>javax.servlet-api</artifactId>
 74       <version>3.0.1</version>
 75     </dependency>
 76 
 77     <!-- 3-2.jsp-->
 78     <dependency>
 79       <groupId>javax.servlet.jsp</groupId>
 80       <artifactId>jsp-api</artifactId>
 81       <version>2.2</version>
 82     </dependency>
 83 
 84     <!-- 3-3.JSTL-->
 85     <dependency>
 86       <groupId>javax.servlet</groupId>
 87       <artifactId>jstl</artifactId>
 88       <version>1.2</version>
 89     </dependency>
 90 
 91   </dependencies>
 92 
 93   <build>
 94 
 95     <!--希望maven在导出项目的时候,能够将我们的配置及资源导出-->
 96     <resources>
 97       <resource>
 98         <directory>src/main/java</directory>
 99         <includes>
100           <include>**/*.properties</include>
101           <include>**/*.xml</include>
102         </includes>
103         <filtering>false</filtering>
104       </resource>
105       <resource>
106         <directory>src/main/resources</directory>
107         <includes>
108           <include>**/*.properties</include>
109           <include>**/*.xml</include>
110         </includes>
111         <filtering>false</filtering>
112       </resource>
113     </resources>
114 
115     <finalName>ssm-book-demo</finalName>
116     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
117       <plugins>
118         <plugin>
119           <artifactId>maven-clean-plugin</artifactId>
120           <version>3.1.0</version>
121         </plugin>
122         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
123         <plugin>
124           <artifactId>maven-resources-plugin</artifactId>
125           <version>3.0.2</version>
126         </plugin>
127         <plugin>
128           <artifactId>maven-compiler-plugin</artifactId>
129           <version>3.8.0</version>
130         </plugin>
131         <plugin>
132           <artifactId>maven-surefire-plugin</artifactId>
133           <version>2.22.1</version>
134         </plugin>
135         <plugin>
136           <artifactId>maven-war-plugin</artifactId>
137           <version>3.2.2</version>
138         </plugin>
139         <plugin>
140           <artifactId>maven-install-plugin</artifactId>
141           <version>2.5.2</version>
142         </plugin>
143         <plugin>
144           <artifactId>maven-deploy-plugin</artifactId>
145           <version>2.8.2</version>
146         </plugin>
147       </plugins>
148     </pluginManagement>
149   </build>
150 </project>
Maven文件汇总

三:项目结构

四:配置Tomcat运行环境

五:测试

1:首页

 2:全部列表页

3:增加页面

4:修改页面

猜你喜欢

转载自www.cnblogs.com/tqsh/p/11328674.html