博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM框架终极篇——Spring、SpringMVC、MyBatis整合练习(超级详细)
阅读量:3941 次
发布时间:2019-05-24

本文共 12015 字,大约阅读时间需要 40 分钟。

SSM框架终极篇——Spring、SpringMVC、MyBatis整合练习

一、准备工作

环境:

  • 新版IDEA
  • MySQL 5.7
  • Tomcat 9.0.2
  • Maven

要求:

  • 熟练掌握MySQL数据库
  • 掌握Spring、SpringMVC、MyBatis框架知识
  • 了解简单的前端知识(JSP、BootStarp)

二、项目编写

1.创建数据库

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,'从入门到入狱');

在这里插入图片描述

2.新建Maven的web项目并连接数据库

在这里插入图片描述

并创建相应的目录结构
在这里插入图片描述
连接数据库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.导入MySQL驱动包、创建JDBC配置文件

在pom.xml中导入MySQL驱动依赖包

mysql
mysql-connector-java
5.1.47

在resources目录下创建database.properties文件,写入连接数据库的配置信息

jdbc.Driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf-8jdbc.username=rootjdbc.password=123456

4.编写pojo实体类、编写dao持久化层

实体类

package com.muhan.pojo;//实体类public class Book {
private int bookID; private String bookName; private int bookCounts; private String detail; public Book() {
} public Book(int bookID, String bookName, int bookCounts, String detail) {
this.bookID = bookID; this.bookName = bookName; this.bookCounts = bookCounts; 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 getBookCounts() {
return bookCounts; } public void setBookCounts(int bookCounts) {
this.bookCounts = bookCounts; } public String getDetail() {
return detail; } public void setDetail(String detail) {
this.detail = detail; } @Override public String toString() {
return "Book{" + "bookID=" + bookID + ", bookName='" + bookName + '\'' + ", bookCounts=" + bookCounts + ", detail='" + detail + '\'' + '}'; }}

dao层接口

package com.muhan.dao;import com.muhan.pojo.Book;import java.util.List;//dao层接口public interface BookDao {
//增加Book int addBook(Book book); //通过id查询Book Book queryBookById(int id); //修改Book int updateBook(Book book); //根据id删除Book int deleteBookById(int id); //查询所有Book,返回集合 List
queryAllBook();}

导入MyBatis的依赖包

org.mybatis
mybatis
3.4.6

编写dao层接口对应的Mapper文件

insert into ssmbuild.book(bookID,bookName,bookCounts,detail) values (#{bookID},#{bookName},#{bookCounts},#{detail})
delete from ssmbuild.book where bookID=#{bookID}
update ssmbuild.book set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail} where bookID=#{bookID}

在resources目录下新建mybatis-config.xml配置文件,配置mybatis

5.编写Service层接口、接口实现类

编写Service接口

package com.muhan.service;import com.muhan.pojo.Book;import java.util.List;//service层接口public interface BookService {
//增加Book int addBook(Book book); //通过id查询Book Book queryBookById(Integer id); //修改Book int updateBook(Book book); //根据id删除Book int deleteBookById(Integer id); //查询所有Book,返回集合 List
queryAllBook();}

编写Service接口实现类

package com.muhan.service;import com.muhan.dao.BookDao;import com.muhan.pojo.Book;import java.util.List;//Service层接口实现类,调用dao层public class BookServiceImpl implements BookService {
//将BookDao组合进来 private BookDao bookDao; //设置一个set方法接口,方斌Spring管理 public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao; } //增加Book @Override public int addBook(Book book) {
return bookDao.addBook(book); } //通过id查询Book @Override public Book queryBookById(Integer id) {
return bookDao.queryBookById(id); } //修改Book @Override public int updateBook(Book book) {
return bookDao.updateBook(book); } //根据id删除Book @Override public int deleteBookById(Integer id) {
return bookDao.deleteBookById(id); } //查询所有Book,返回集合 @Override public List
queryAllBook() {
return bookDao.queryAllBook(); }}

6.配置Spring整合MyBtis(dao层)

我们这里使用c3p0连接池,导入依赖包

com.mchange
c3p0
0.9.5.2

再导入mybatis-spring的依赖包、Spring相关包(spring-web、spring-jdbc)

org.mybatis
mybatis-spring
1.3.1
org.springframework
spring-jdbc
4.3.24.RELEASE
org.springframework
spring-webmvc
4.3.24.RELEASE

Spring整合MyBatis,在resources目录下新建spring目录,并在该目录下新建spring-dao.xml文件,用来配置spring整合mybatis

6.配置Spring整合Service层

在resources/spring目录下新建spring-service.xml配置文件,并编写整合servcie层的配置

7.配置SpringMVC

首先导入springmvc的三个包:jsp,jstl,servlet

javax.servlet
javax.servlet-api
3.0.1
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2

配置web.xml,在web.xml中配置DispatcherServlet以及过滤器

DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:application.xml
1
DispatcherServlet
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encodingFilter
/*

在resources/spring下新建spring-mvc.xml配置文件,用来配置springmvc

8.Spring整合配置文件

在resources目录下新建一个application.xml文件,将spring目录下的三个spring配置文件导入

9.编写Controller

package com.muhan.controller;import com.muhan.pojo.Book;import com.muhan.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.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;@Controller@RequestMapping("/book")public class UserController {
@Autowired @Qualifier("BookServiceImpl") private BookService bookService; @RequestMapping("/allBook") public String list(Model model) {
System.out.println("allBook进来了---------------------------------"); List
list = bookService.queryAllBook(); model.addAttribute("list",list); return "allBook"; } @RequestMapping("/toAddBook") public String toAddBook() {
return "addBook"; } @RequestMapping("/addBook") public String addBook(Book book){
System.out.println("添加的书:---------------->"+book); bookService.addBook(book); return "redirect:/book/allBook";//重定向到allBook页面 } @RequestMapping("/toUpdateBook") public String toUpdateBook(Model model,Integer id){
Book book = bookService.queryBookById(id); System.out.println("展示要修改的书:---------------->"+book); model.addAttribute("book",book); return "updateBook"; } @RequestMapping("/updateBook") public String updateBook(Model model,Book book){
System.out.println("要修改的书:---------------->"+book); bookService.updateBook(book); Book book1 = bookService.queryBookById(book.getBookID()); model.addAttribute("book",book1); System.out.println("修改后的书籍===="+book1); return "redirect:/book/allBook";//重定向到allBook页面 } @RequestMapping("/del/{bookID}") public String deleteBook(@PathVariable("bookID") Integer id){
bookService.deleteBookById(id); return "redirect:/book/allBook";//重定向到allBook页面 }}

10.处理资源导出问题

在pom.xml里的build里面配置

src/main/java
**/*.xml
false
src/main/resources
**/*.xml
**/*.properties
false

11.前端视图层

首页index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    首页    

在WEB-INF目录下新建jsp目录,并将以下的页面放在该目录下

增加书籍页面addBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>    新增书籍    
书籍名称:
书籍数量:
书籍详情:

书籍列表页面allBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>    书籍列表    
书籍编号 书籍名字 书籍数量 书籍详情 操作
${book.getBookID()} ${book.getBookName()} ${book.getBookCounts()} ${book.getDetail()} 更改 | 删除

修改书籍信息页面updateBook.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>    修改信息    
书籍名称:
书籍数量:
书籍详情:

12.配置Tomcat

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.项目结构

在这里插入图片描述

14.测试

运行tomcat测试

在这里插入图片描述
点击查看列表
在这里插入图片描述
点击新增按钮,新增书籍
在这里插入图片描述
新增后,自动返回列表页面,我们发现新增的数据已经填加上了
在这里插入图片描述
再去数据库查看
在这里插入图片描述
我们修改信息,点击提交后会自动返回列表页面
在这里插入图片描述
发现数据已经更改

在这里插入图片描述

在数据库中查看,发现已经更新数据
在这里插入图片描述

然后我们点击删除,发现已经删除

在这里插入图片描述

转载地址:http://dtiwi.baihongyu.com/

你可能感兴趣的文章
CentOS7 最小环境安装Jumpserver 1.0版脚本
查看>>
X-Security X的安全控制
查看>>
openVAS的安装
查看>>
Centos 6.5 初始安装无网卡驱动解决方法
查看>>
linux中的网桥bridge
查看>>
linux中的teaming与bonding
查看>>
LVM
查看>>
用shell切分文件--split
查看>>
python中判断字符是否为中文
查看>>
Python - 利用zip函数将两个列表(list)组成字典(dict)
查看>>
python-全角转半角
查看>>
Python pass语句作用与用法
查看>>
Java double,float设置小数点位数
查看>>
PyCharm & Jupyter
查看>>
为什么要用Jupyter Notebook
查看>>
sklearn中的LogisticRegression模型
查看>>
pandas.get_dummies 的用法
查看>>
机器学习-训练模型的保存与恢复(sklearn)
查看>>
Spark(二): spark-submit命令详解
查看>>
细品 - 逻辑回归(LR)*
查看>>