ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-03-29

2021-03-29 22:01:12  阅读:175  来源: 互联网

标签:03 int 29 id book books 2021 Books public


狂神说的springMVC层,原理讲得很好,就是我跟他学写代码他没事我一堆报错(哭了)
原文链接:https://mp.weixin.qq.com/s/SDxqGu_il3MUCTcN1EYrng

整合SSM框架

在上一节中,我们了解了SpringMVC参数接收处理和结果跳转处理!

狂神说SpringMVC04:数据处理及跳转

现在我们来看看,如何集成SSM框架!完整项目的整合!

整合SSM
环境要求

环境:

IDEA

MySQL 5.7.19

Tomcat 9

Maven 3.6

要求:

需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;

数据库环境

创建一个存放书籍数据的数据库表

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

INSERT INTO books(bookID,bookName,bookCounts,detail)VALUES
(1,‘Java’,1,‘从入门到放弃’),
(2,‘MySQL’,10,‘从删库到跑路’),
(3,‘Linux’,5,‘从进门到进牢’);

基本环境搭建

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

2、导入相关的pom依赖!

junit junit 4.12 mysql mysql-connector-java 5.1.47 com.mchange c3p0 0.9.5.2 javax.servlet servlet-api 2.5 javax.servlet.jsp jsp-api 2.2 javax.servlet jstl 1.2 org.mybatis mybatis 3.5.2 org.mybatis mybatis-spring 2.0.2 org.springframework spring-webmvc 5.1.9.RELEASE org.springframework spring-jdbc 5.1.9.RELEASE 3、Maven资源过滤设置 src/main/java **/*.properties **/*.xml false src/main/resources **/*.properties **/*.xml false 4、建立基本结构和配置框架!

com.kuang.pojo

com.kuang.dao

com.kuang.service

com.kuang.controller

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?> applicationContext.xml <?xml version="1.0" encoding="UTF-8"?>

Mybatis层编写

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

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
2、IDEA关联数据库

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

<?xml version="1.0" encoding="UTF-8" ?> 4、编写数据库对应的实体类 com.kuang.pojo.Books

使用lombok插件!

package com.kuang.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {

private int bookID;
private String bookName;
private int bookCounts;
private String detail;

}
5、编写Dao层的 Mapper接口!

package com.kuang.dao;

import com.kuang.pojo.Books;
import java.util.List;

public interface BookMapper {

//增加一个Book
int addBook(Books book);

//根据id删除一个Book
int deleteBookById(int id);

//更新Book
int updateBook(Books books);

//根据id查询,返回一个Book
Books queryBookById(int id);

//查询全部Book,返回list集合
List queryAllBook();

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

<?xml version="1.0" encoding="UTF-8" ?> insert into ssmbuild.books(bookName,bookCounts,detail) values (#{bookName}, #{bookCounts}, #{detail}) delete from ssmbuild.books where bookID=#{bookID} update ssmbuild.books set bookName = #{bookName},bookCounts = #{bookCounts},detail = #{detail} where bookID = #{bookID} select * from ssmbuild.books where bookID = #{bookID} SELECT * from ssmbuild.books 7、编写Service层的接口和实现类

接口:

package com.kuang.service;

import com.kuang.pojo.Books;

import java.util.List;

//BookService:底下需要去实现,调用dao层
public interface BookService {
//增加一个Book
int addBook(Books book);
//根据id删除一个Book
int deleteBookById(int id);
//更新Book
int updateBook(Books books);
//根据id查询,返回一个Book
Books queryBookById(int id);
//查询全部Book,返回list集合
List queryAllBook();
}
实现类:

package com.kuang.service;

import com.kuang.dao.BookMapper;
import com.kuang.pojo.Books;
import java.util.List;

public class BookServiceImpl implements BookService {

//调用dao层的操作,设置一个set接口,方便Spring管理
private BookMapper bookMapper;

public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}

public int addBook(Books book) {
return bookMapper.addBook(book);
}

public int deleteBookById(int id) {
return bookMapper.deleteBookById(id);
}

public int updateBook(Books books) {
return bookMapper.updateBook(books);
}

public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}

public List queryAllBook() {
return bookMapper.queryAllBook();
}
}
OK,到此,底层需求操作编写完毕!

Spring层

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

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

<?xml version="1.0" encoding="UTF-8"?>

<context:property-placeholder location=“classpath:database.properties”/>

   <!-- c3p0连接池的私有属性 -->
   <property name="maxPoolSize" value="30"/>
   <property name="minPoolSize" value="10"/>
   <!-- 关闭连接后不自动commit -->
   <property name="autoCommitOnClose" value="false"/>
   <!-- 获取连接超时时间 -->
   <property name="checkoutTimeout" value="10000"/>
   <!-- 当获取连接失败重试次数 -->
   <property name="acquireRetryAttempts" value="2"/>
3、Spring整合service层 <?xml version="1.0" encoding="UTF-8"?>

<context:component-scan base-package=“com.kuang.service” />

Spring层搞定!再次理解一下,Spring就是一个大杂烩,一个容器!对吧!

SpringMVC层

1、web.xml

<?xml version="1.0" encoding="UTF-8"?>

DispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:applicationContext.xml 1 DispatcherServlet / encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encodingFilter /* 15 2、spring-mvc.xml <?xml version="1.0" encoding="UTF-8"?>

<mvc:annotation-driven />

mvc:default-servlet-handler/

<context:component-scan base-package=“com.kuang.controller” />

3、Spring配置整合文件,applicationContext.xml <?xml version="1.0" encoding="UTF-8"?>

配置文件,暂时结束!Controller 和 视图层编写

1、BookController 类编写 , 方法一:查询全部书籍

@Controller
@RequestMapping("/book")
public class BookController {

@Autowired
@Qualifier(“BookServiceImpl”)
private BookService bookService;

@RequestMapping("/allBook")
public String list(Model model) {
List list = bookService.queryAllBook();
model.addAttribute(“list”, list);
return “allBook”;
}
}
2、编写首页 index.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8” %>

首页

点击进入列表页

3、书籍列表页面 allbook.jsp

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

书籍列表

书籍列表 —— 显示所有书籍

新增
           <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/del/${book.getBookID()}">删除</a>
                   </td>
               </tr>
           </c:forEach>
           </tbody>
       </table>
   </div>
书籍编号书籍名字书籍数量书籍详情操作
4、BookController 类编写 , 方法二:添加书籍

@RequestMapping("/toAddBook")
public String toAddPaper() {
return “addBook”;
}

@RequestMapping("/addBook")
public String addPaper(Books books) {
System.out.println(books);
bookService.addBook(books);
return “redirect:/book/allBook”;
}
5、添加书籍页面:addBook.jsp

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

新增书籍

新增书籍

书籍名称:


书籍数量:


书籍详情:


6、BookController 类编写 , 方法三:修改书籍

@RequestMapping("/toUpdateBook")
public String toUpdateBook(Model model, int id) {
Books books = bookService.queryBookById(id);
System.out.println(books);
model.addAttribute(“book”,books );
return “updateBook”;
}

@RequestMapping("/updateBook")
public String updateBook(Model model, Books book) {
System.out.println(book);
bookService.updateBook(book);
Books books = bookService.queryBookById(book.getBookID());
model.addAttribute(“books”, books);
return “redirect:/book/allBook”;
}
7、修改书籍页面 updateBook.jsp

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

修改信息

修改信息

书籍名称: 书籍数量: 书籍详情: 8、BookController 类编写 , 方法四:删除书籍

@RequestMapping("/del/{bookId}")
public String deleteBook(@PathVariable(“bookId”) int id) {
bookService.deleteBookById(id);
return “redirect:/book/allBook”;
}
配置Tomcat,进行运行!

到目前为止,这个SSM项目整合已经完全的OK了,可以直接运行进行测试!这个练习十分的重要,大家需要保证,不看任何东西,自己也可以完整的实现出来!

项目结构图

图片

图片

小结及展望

这个是同学们的第一个SSM整合案例,一定要烂熟于心!

SSM框架的重要程度是不言而喻的,学到这里,大家已经可以进行基本网站的单独开发。但是这只是增删改查的基本操作。可以说学到这里,大家才算是真正的步入了后台开发的门。也就是能找一个后台相关工作的底线。

或许很多人,工作就做这些事情,但是对于个人的提高来说,还远远不够!

我们后面还要学习一些 SpringMVC 的知识!

Ajax 和 Json

文件上传和下载

拦截器

前路漫漫,认真坚持最重要!

图片
end

图片
视频同步更新,这次一定!

图片

图片

喜欢此内容的人还喜欢
谈谈我与 Intellij IDEA 的故事
谈谈我与 Intellij IDEA 的故事…
Java面试那些事儿
不喜欢
不看的原因
确定
内容质量低 不看此公众号
琴女迎来小型重做:技能可以永久叠加技能急速!
琴女迎来小型重做:技能可以永久叠加技能急速!…
我是TOO
不喜欢
不看的原因
确定
内容质量低 不看此公众号
【247期】记一次Java面试中遇到的三个问题及感悟!
【247期】记一次Java面试中遇到的三个问题及感悟!…
Java面试题精选
不喜欢
不看的原因
确定
内容质量低 不看此公众号

微信扫一扫
关注该公众号

标签:03,int,29,id,book,books,2021,Books,public
来源: https://blog.csdn.net/JackSu1111/article/details/115312224

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有