2020年12月17日星期四

5 整合SSM框架

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、确定项目基本框架!

image-20201215165138707

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=1234

MyBatis 层编写

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文件夹,在其中添加项目所需要的包,否则项目会报错!

image-20201217214032939

2、由于

 <properties>  <project.build.sourceEncoding>UTF8</project.build.sourceEncoding> </properties>

项目结构图:

image-20201217214229768









原文转载: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月份去厦门鼓浪屿好吗?现在去鼓浪屿怎样?

没有评论:

发表评论

跨境电商资讯:外贸宣传平台有哪些(出口的

现在很多做外贸的人都非常关注 外贸企业怎么推广 ,而现在推广的途径和平台有很多,企业如果都做,成本和时间精力是一个问题,而且并不是所有的推广渠道都是有用的。今天云程网络就来为大家盘点几个有效的外贸推广渠道。 一、海外社交媒体营销 Facebook,领英等海外社交媒体营销在近几年得...