5 整合SSM框架
环境
- IDEA 2020.2
- MySQL 5.7.29
- Tomcat 9
- Maven 3.6
数据库环境
创建一个数据库及表格
CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',`bookName` VARCHAR(100) NOT NULL COMMENT '书名',`bookCounts` INT(11) NOT NULL COMMENT '数量',`detail` VARCHAR(200) NOT NULL COMMENT '描述',KEY `bookID` (`bookID`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)VALUES (1,'Java',1,'从入门到放弃'),(2,'MySQL',10,'从删库到跑路'),(3,'Linux',5,'从进门到进牢');项目环境搭建
1、新建一个Maven项目!ssmbuild,添加web支持!
2、导入相关pom依赖以及Maven静态资源过滤问题解决!
<?3、确定项目基本框架!

mybatis-config.
<?applicationContext.
<?jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&verifyServerCertificate=false&useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=1234MyBatis 层编写
1、创建实体类Book
package com.zzb.pojo;public class Book { private int bookId; private String bookName; private int bookCount; private String detail; public Book() { } public Book(int bookId, String bookName, int bookCount, String detail) { this.bookId = bookId; this.bookName = bookName; this.bookCount = bookCount; this.detail = detail; } public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public int getBookCount() { return bookCount; } public void setBookCount(int bookCount) { this.bookCount = bookCount; } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail; } @Override public String toString() { return "Book{" + "bookId=" + bookId + ", bookName='" + bookName + '\'' + ", bookCount=" + bookCount + ", detail='" + detail + '\'' + '}'; }}2、编写Mapper层Mapper接口
package com.zzb.mapper;import com.zzb.pojo.Book;import org.apache.ibatis.annotations.Param;import java.util.List;public interface BookMapper { // 增加一本书 int addBook(Book book); // 删除一本书 int deleteBookById(@Param("bookId") int id); // 更新一本书 int updateBook(Book book); // 查询一本书 Book queryBookById(@Param("bookId") int id); // 查询所有书 List<Book> queryAllBook();}3、编写对应的Mapper.
<?4、编写Service层的接口和实现类
package com.zzb.service;import com.zzb.pojo.Book;import java.util.List;public interface BookService { // 增加一本书 int addBook(Book book); // 删除一本书 int deleteBookById(int id); // 更新一本书 int updateBook(Book book); // 查询一本书 Book queryBookById(int id); // 查询所有书 List<Book> queryAllBook();}package com.zzb.service;import com.zzb.mapper.BookMapper;import com.zzb.pojo.Book;import java.util.List;public class BookServiceImpl implements BookService{ // 组合Mapper层 private BookMapper bookMapper; public void setBookMapper(BookMapper bookMapper) { this.bookMapper = bookMapper; } public int addBook(Book book) { return bookMapper.addBook(book); } public int deleteBookById(int id) { return bookMapper.deleteBookById(id); } public int updateBook(Book book) { return bookMapper.updateBook(book); } public Book queryBookById(int id) { return bookMapper.queryBookById(id); } public List<Book> queryAllBook() { return bookMapper.queryAllBook(); }}5、配置MyBatis核心配置文件
<?Spring 层编写
1、Spring 整合 MyBatis层,spring-dao.
<?2、Spring 整合 Service 层,spring-service.
<?Spring MVC 层
1、spring-mvc.
<?2、Spring 配置文件整合,applicationContext.
<?3、web.
<?Controller 和视图层编写
1、查询全部书籍, BookController 类编写
package com.zzb.controller;import com.zzb.pojo.Book;import com.zzb.service.BookService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;@Controller@RequestMapping("/book")public class BookController { // controller层调用业务层 // 自动装备指定参数 @Autowired @Qualifier("bookServiceImpl") private BookService bookService; @RequestMapping("/allBook") public String allBook(Model model){ List<Book> bookList = bookService.queryAllBook(); model.addAttribute("bookList", bookList); return "allBook"; }}2、编写首页 index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>$Title$</title> <style type="text/css"> 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> <body> <h3> <a href="${pageContext.request.contextPath}/book/allBook">进入书籍展示页面</a> </h3> </body></html>3、数据列表页面 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 > <div > <div > <div > <h1> <small>书籍列表 —— 显示所有书籍</small> </h1> </div> </div> </div> <div > <div > <a href="${pageContext.request.contextPath}/book/toAddBook">新增</a> </div> </div> <div > <div > <table > <thead> <tr> <th>书籍编号</th> <th>书籍名字</th> <th>书籍数量</th> <th>书籍详情</th> <th>操作</th> </tr> </thead> <tbody> <c:forEach var="book" items="${requestScope.get('bookList')}"> <tr> <td>${book.getBookId()}</td> <td>${book.getBookName()}</td> <td>${book.getBookCount()}</td> <td>${book.getDetail()}</td> <td> <a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.getBookId()}">更改</a> | <a href="${pageContext.request.contextPath}/book/del/${book.getBookId()}">删除</a> </td> </tr> </c:forEach> </tbody> </table> </div> </div></div></body></html>4、添加书籍,BookController类编写
// 添加书籍功能 // 首先跳转到添加书籍页面 @RequestMapping("toAddBook") public String toAddBook(){ return "addBook"; } // 执行数据添加 @RequestMapping("addBook") public String addBook(Book book){ int i = bookService.addBook(book); if(i == 1){ System.out.println("书籍添加成果!"); }else{ System.out.println("书籍添加失败!"); } return "redirect:/book/allBook"; }5、添加书籍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 > <div > <div > <div > <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="bookCount"><br><br><br> 书籍详情:<input type="text" name="detail"><br><br><br> <input type="submit" value="添加"> </form></div></body></html>6、修改书籍,BookController类编写
// 修改书籍信息 // 跳转到书籍信息修改页面 @RequestMapping("toUpdateBook") public String toUpdateBook(@RequestParam("id") int bookId, Model model){ // 首先查询到书籍的原信息,在页面中进行展示 Book book = bookService.queryBookById(bookId); System.out.println(book.toString()); model.addAttribute("book", book); return "updateBook"; } // 执行修改数据操作 @RequestMapping("updateBook") public String updateBook(Book book){ int i = bookService.updateBook(book); if(i == 1){ System.out.println("修改书籍成功!"); }else{ System.out.println("修改书籍失败!"); } return "redirect:/book/allBook"; }7、修改书籍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 > <div > <div > <div > <h1> <small>修改书籍书籍</small> </h1> </div> </div> </div> <form action="${pageContext.request.contextPath}/book/updateBook" method="post"> <%--隐藏域传递书籍id--%> <input type="hidden" name="bookId" value="${book.getBookId()}"> 书籍名称:<input type="text" name="bookName" value="${book.getBookName()}"><br><br><br> 书籍数量:<input type="text" name="bookCount" value="${book.getBookCount()}"><br><br><br> 书籍详情:<input type="text" name="detail" value="${book.getDetail()}"><br><br><br> <input type="submit" value="修改"> </form></div></body></html>8、删除数据,BookController类编写
// 删除一本书籍 @RequestMapping("/deleteBook/{id}") public String deleteBook(@PathVariable("id") int bookId){ int i = bookService.deleteBookById(bookId); if(i == 1){ System.out.println("删除书籍成功!"); }else{ System.out.println("删除书籍失败!"); } return "redirect:/book/allBook"; }9、配置Tomcat,运行,测试
问题说明:
1、手动为项目添加lib文件夹,在其中添加项目所需要的包,否则项目会报错!

2、由于
<properties> <project.build.sourceEncoding>UTF8</project.build.sourceEncoding> </properties>项目结构图:

原文转载:http://www.shaoqun.com/a/501278.html
ebay易趣:https://www.ikjzd.com/w/210
浩方:https://www.ikjzd.com/w/1046
二类电商:https://www.ikjzd.com/w/1457
5整合SSM框架环境IDEA2020.2MySQL5.7.29Tomcat9Maven3.6数据库环境创建一个数据库及表格CREATEDATABASE`ssmbuild`;USE`ssmbuild`;DROPTABLEIFEXISTS`books`;CREATETABLE`books`(`bookID`INT(10)NOTNULLAUTO_INCREMENTCOMMENT'书id'
aca:aca
识货:识货
美国卖家凉凉,亚马逊再次限制发货!:美国卖家凉凉,亚马逊再次限制发货!
厦门永定土楼好玩吗?漂亮吗?:厦门永定土楼好玩吗?漂亮吗?
4月份去厦门鼓浪屿好吗?现在去鼓浪屿怎样?:4月份去厦门鼓浪屿好吗?现在去鼓浪屿怎样?
没有评论:
发表评论