SSM配置地狱?一篇整合模板迅速解决!【建议收藏】
生活随笔
收集整理的這篇文章主要介紹了
SSM配置地狱?一篇整合模板迅速解决!【建议收藏】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Spring+SpringMVC+Mybatis
環境配置
IDEA
MySQL 5.7
Tomcat 8.5
Maven 3.6
創建數據庫
編寫數據庫對應的實體類com.longdi.pojo.Books
導入lombok在pom.xml中
導入相關的pom依賴
<dependencies><!--Junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--數據庫驅動--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><!-- 數據庫連接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!--Servlet - JSP --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--Mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.2</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.4</version></dependency><!--Spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.16</version><scope>compile</scope></dependency></dependencies>資源過濾設置
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources> </build>Mybatis層編寫
創建mybatis-config.xml
編寫Dao層的Mapper接口
package com.longdi.dao;import com.longdi.pojo.Books; import org.apache.ibatis.annotations.Param;import java.util.List;/*** @author: 龍弟* @description* @date: 2021/9/27 20:32*/ public interface BookMapper {//增加一本書int addBook(Books books);//刪除一本書int deleteBookById(@Param("bookId") int id);//更新一本書int updateBook(Books books);//查詢一本書Books queryBookById(@Param("bookId")int id);//查詢全部的書List<Books> queryAllBook();Books queryBookByName(@Param("bookName")String bookName);}編寫接口對應的 Mapper.xml 文件。需要導入MyBatis的包;
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.longdi.dao.BookMapper"><insert id="addBook" parameterType="Books">insert into ssmbuild.books(bookName,bookCounts,detail)values(#{bookName},#{bookCounts},#{detail});</insert><delete id="deleteBookById" parameterType="int">delete from ssmbuild.books where bookID=#{bookId}</delete><update id="updateBook" parameterType="Books">update ssmbuild.booksset bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}where bookID=#{bookID};</update><select id="queryBookById" resultType="Books">select * from ssmbuild.bookswhere bookID=#{bookId}</select><select id="queryAllBook" resultType="Books">select * from ssmbuild.books</select><select id="queryBookByName" resultType="Books">select * from ssmbuild.books where bookName=#{bookName}</select></mapper>編寫Service層的接口
package com.longdi.service;import com.longdi.pojo.Books;import java.util.List;/*** @author: 龍弟* @description* @date: 2021/9/27 21:03*/ public interface BookService {//增加一本書int addBook(Books books);//刪除一本書int deleteBookById( int id);//更新一本書int updateBook(Books books);//查詢一本書Books queryBookById(int id);//查詢全部的書List<Books> queryAllBook();Books queryBookByName(String bookName); }Service層的實現類
package com.longdi.service;import com.longdi.dao.BookMapper; import com.longdi.pojo.Books; import org.springframework.stereotype.Service;import java.util.List;/*** @author: 龍弟* @description* @date: 2021/9/27 21:05*/public class BookServiceImpl implements BookService{private BookMapper bookMapper;public void setBookMapper(BookMapper bookMapper) {this.bookMapper = bookMapper;}public int addBook(Books books) {return bookMapper.addBook(books);}public int deleteBookById(int id) {return bookMapper.deleteBookById(id);}public int updateBook(Books books) {System.out.println("BookServiceImpl:updateBook=>"+books);return bookMapper.updateBook(books);}public Books queryBookById(int id) {return bookMapper.queryBookById(id);}public List<Books> queryAllBook() {return bookMapper.queryAllBook();}public Books queryBookByName(String bookName) {return bookMapper.queryBookByName(bookName);} }Spring整合Mybatis spring-dao.xml
以下為spring層
spring-service.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 掃描service相關的bean --><context:component-scan base-package="com.longdi.service" /><!--BookServiceImpl注入到IOC容器中--><bean id="BookServiceImpl" class="com.longdi.service.BookServiceImpl"><property name="bookMapper" ref="bookMapper"/></bean><!-- 配置事務管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入數據庫連接池 --><property name="dataSource" ref="dataSource" /></bean><!--aop事物支持--><!--結合aop實現事物的織入--><!--配置事物的通知--><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="*" propagation="REQUIRED"/></tx:attributes></tx:advice><!--配置事物切入--><aop:config><aop:pointcut id="txPointCut" expression="execution(* com.longdi.dao.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/></aop:config></beans>以下為SpringMVC層
配置web.xml
spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 配置SpringMVC --><!-- 1.開啟SpringMVC注解驅動 --><mvc:annotation-driven /><!-- 2.靜態資源默認servlet配置--><mvc:default-servlet-handler/><!-- 3.配置jsp 顯示ViewResolver視圖解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- 4.掃描web相關的bean --><context:component-scan base-package="com.longdi.controller" /></beans>Spring配置整合文件,創建applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="spring-dao.xml"/><import resource="spring-service.xml"/><import resource="spring-mvc.xml"/></beans>以上為SSM的環境配置,下面編寫Controller層和視圖層,實現書籍的CRUD功能
controller層 書籍的增刪改查功能
import java.util.ArrayList; import java.util.List;/*** @author: 龍弟* @description* @date: 2021/9/27 22:47*/ @Controller @RequestMapping("/book") public class BookController {@Autowired@Qualifier("BookServiceImpl")private BookService bookService;@RequestMapping("/allBook")public String list(Model model) {List<Books> list = bookService.queryAllBook();model.addAttribute("list", list);return "allBook";}//跳轉到增加書籍頁面@RequestMapping("/toAddBook")public String toAddPaper(){return "addBook";}//添加書籍的請求@RequestMapping("/addBook")public String addBook(Books books){System.out.println("addBook=>"+books);bookService.addBook(books);return "redirect:/book/allBook";}//跳轉到修改頁面@RequestMapping("toUpdateBook")public String toUpdatePaper(int id,Model model){Books books = bookService.queryBookById(id);model.addAttribute("book",books);return "updateBook";}//修改書籍@RequestMapping("updateBook")public String updateBook(Books books){System.out.println("updateBook=>"+books);int i=bookService.updateBook(books);if(i>0){System.out.println("添加books成功"+books);}return "redirect:/book/allBook";}//刪除書籍@RequestMapping("/deleteBook/{bookId}")public String deleBook(@PathVariable("bookId") int id){bookService.deleteBookById(id);return "redirect:/book/allBook";}//查詢書籍@RequestMapping("/queryBook")public String queryBook(String queryBookName,Model model){Books books=bookService.queryBookByName(queryBookName);System.err.println("queryBook=>"+books);List<Books> list=new ArrayList<Books>();list.add(books);if(books==null){list=bookService.queryAllBook();model.addAttribute("error","未查到");}model.addAttribute("list",list);return "allBook";}}編寫首頁index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE HTML> <html> <head><title>首頁</title><style>a{text-decoration: none;color:black;font-size:18px;}h3{width:180px;height:38px;margin: 100px auto;text-align: center;line-height: 38px;background: deepskyblue;border-radius: 4px;}</style> </head><h3><a href="${pageContext.request.contextPath}/book/allBook">進入到書籍頁面</a> </h3> </body> </html>編寫書籍列表頁面allBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>書籍列表</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body><div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>書籍列表 —— 顯示所有書籍</small></h1></div></div></div><div class="row"><div class="col-md-4 column"><a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook">新增書籍</a><a class="btn btn-primary" href="${pageContext.request.contextPath}/book/allBook">顯示全部書籍</a></div><div class="col-md-4 column"><div class="col-md-8 column"></div><%--查詢書籍--%><form class="form-inline" action="${pageContext.request.contextPath}/book/queryBook" method="post" style="float: right"><span style="color:red;font-weight: bold">${error}</span><input type="text" name="queryBookName" class="form-control" placeholder="請輸入要查詢的書籍名稱"><input type="submit" value="查詢" class="btn btn-primary"/></form></div></div><div class="row clearfix"><div class="col-md-12 column"><table class="table table-hover table-striped"><thead><tr><th>書籍編號</th><th>書籍名字</th><th>書籍數量</th><th>書籍詳情</th><th>操作</th></tr></thead><tbody><c:forEach var="book" items="${requestScope.get('list')}"><tr><td>${book.getBookID()}</td><td>${book.getBookName()}</td><td>${book.getBookCounts()}</td><td>${book.getDetail()}</td><td><a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.getBookID()}">更改</a> |<a href="${pageContext.request.contextPath}/book/deleteBook/${book.getBookID()}">刪除</a></td></tr></c:forEach></tbody></table></div></div> </div>添加書籍頁面 addBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head><title>新增書籍</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>新增書籍</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/addBook" method="post">書籍名稱:<input type="text" name="bookName"><br><br><br>書籍數量:<input type="text" name="bookCounts"><br><br><br>書籍詳情:<input type="text" name="detail"><br><br><br><input type="submit" value="添加"></form></div>修改書籍頁面 updateBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>修改信息</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>修改信息</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/updateBook" method="post"><input type="hidden" name="bookID" value="${book.getBookID()}"/>書籍名稱:<input type="text" name="bookName" value="${book.getBookName()}"/>書籍數量:<input type="text" name="bookCounts" value="${book.getBookCounts()}"/>書籍詳情:<input type="text" name="detail" value="${book.getDetail() }"/><input type="submit" value="提交"/></form></div>項目部署到tomcat中
項目結構圖
gitee網站下載源碼
github網站下載源碼
總結
以上是生活随笔為你收集整理的SSM配置地狱?一篇整合模板迅速解决!【建议收藏】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序相关一、模仿京东静态登录页面
- 下一篇: YV12toI420 yuv420、N