SSM项目整合
SSM整合项目
1、创建数据库ssmbuild,创建表books,插入相关数据!
CREATE DATABASE ssmbuild; //创建数据库
USE ssmbuild; //使用数据库
DROP TABLE IF EXISTS books; //删除空表
//创建books表
CREATE TABLE ssmbuild.books (
bookID int NOT NULL AUTO_INCREMENT COMMENT '书id',
bookName varchar(100) NOT NULL COMMENT '书名',
bookCounts int NOT NULL COMMENT '数量',
detail varchar(200) NOT NULL COMMENT '描述',
PRIMARY KEY (bookID)
) ENGINE = InnoDB CHARSET = utf8 ;
//插入数据
INSERT INTO books (bookID,bookName,bookCounts,detail)VALUES
(1,'JAVA',1,'从入门到放弃'),
(2,'MySQL',10,'从删库到跑路'),
(3,'Linux',5,'从进门到进牢');
2、基本环境搭建
1.创建一个普通的,maven项目!
2.在pom.xml导入相关依赖
3.连接数据库
4.在java包中创建com.fan.controler包 com.fan.dao包;com.fan.service包
com.fan.pojo包=========可能还有其他的,fiter包,utils包!
5.在resources中写好maybatis核心配置文件,以及spring核心配置文件,还有连接database.properties!
Mybatis-config.xml
applicationContext.xml
db.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT
jdbc.username=root
jdbc.password=
6.在pojo包中创建实体类,Books.java
package com.fan.pojo;
import java.util.Objects;
public class Books {
private int bookID;
private String bookName;
private int bookCounts;
private String detail;
public Books() {
}
public Books(int bookID, String bookName, int bookCounts, String detail) {
this.bookID = bookID;
this.bookName = bookName;
this.bookCounts = bookCounts;
this.detail = detail;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Books books = (Books) o;
return bookID == books.bookID &&
bookCounts == books.bookCounts &&
Objects.equals(bookName, books.bookName) &&
Objects.equals(detail, books.detail);
}
@Override
public int hashCode() {
return Objects.hash(bookID, bookName, bookCounts, 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 "Books{" +
"bookID=" + bookID +
", bookName='" + bookName + ''' +
", bookCounts=" + bookCounts +
", detail='" + detail + ''' +
'}';
}
}
7.在dao中写一个BookMapper.java的接口
package com.fan.dao;
import com.fan.pojo.Books;
import java.util.List;
public interface BookMapper {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBookById(int id);
//更新一本书
int updateBook(Books books);
//查询一本书
int queryBookById(int id);
//查询全部的书
List
}
8.在dao中写BookMapper.xml文件
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}
9.在业务层service中创建 BookService.java接口,和其实现类!
BookService.java
package com.fan.service;
import com.fan.pojo.Books;
import java.util.List;
public interface BookService {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBookById(int id);
//更新一本书
int updateBook(Books books);
//查询一本书
int queryBookById(int id);
//查询全部的书
List
}
BookServiceImpl.java
package com.fan.service;
import com.fan.dao.BookMapper;
import com.fan.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService{
//service层调用dao层:组合Dao
private BookMapper bookMapper;
//Setter方法
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) {
return bookMapper.updateBook(books);
}
public int queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List
return bookMapper.queryAllBook();
}
}
3、Spring整合Dao层
在resources中创建spring-dao.xml配置文件
<context:property-placeholder location="classpath:database.properties"/>
4、Spring整合Service层
在resources中创建spring-service.xml
<context:component-scan base-package="com.fan.service"/>
5、SpringMVC
1、添加一个web文件夹,配置web.xml文件
2、配置spring-mvc.xml
mvc:annotation-driven/
mvc:default-servlet-handler/
<context:component-scan base-package="com.fan.controller"/>
3、在WEB-INF包下创建一个jsp包,
6、开始controller层和jsp层交互
在controler包中,创建BookController.java,其目的是:controller层调用service层---这里是查询全部书籍
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
@RequestMapping("/book")
public class BookController {
//controller 调用service层
//@Autowired 默认是按照类去匹配,配合。 @Qualifier 指定按照名称去装配 bean。
@Autowired
@Qualifier("BookServiceImpl")
private BookService bookService;
//查询全部的书籍,并且返回到一个书籍展示页面!
@RequestMapping("/allBook")
public String list(Model model){
List
model.addAttribute("list",list);
return "allBook";
}
}
在WEB-INF中创建jsp包,再建立allBook.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
书籍展示
7、实现书籍的CRUD
7.1 书籍的显示功能
在jsp包下创建allBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
在controller层中的BookController.java写相关操作
package com.fan.controller;
import com.fan.pojo.Books;
import com.fan.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 BookController {
//controller 调用service层
//@Autowired 默认是按照类去匹配,配合。 @Qualifier 指定按照名称去装配 bean。
@Autowired
@Qualifier("BookServiceImpl")
private BookService bookService;
//查询全部的书籍,并且返回到一个书籍展示页面!
@RequestMapping("/allBook")
public String list(Model model){
List
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";//重定向到allBook请求
}
//跳转到修改页面
@RequestMapping("/toUpdate")
public String toUpdatePaper(int id,Model model){
Books books = bookService.queryBookById(id);
model.addAttribute("QBook",books);
return ("updateBook");
}
//修改书籍的请求
@RequestMapping("/updateBook")
public String updateBook(Books books){
System.out.println("updateBook"+books);
bookService.updateBook(books);
return "redirect:/book/allBook";
}
//删除书籍
@RequestMapping("/deleteBook/{bookId}")
public String deleteBook(@PathVariable("bookId") int id){
bookService.deleteBookById(id);
return "redirect:/book/allBook";
}
}
7.2 书籍的添加功能
在前端页面的的书籍下面增加一个添加书籍的按钮
交给Controller层处理,在controller层写相关方法
//跳转到增加书籍页面
@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";//重定向到allBook请求
}
之后再jsp包中创建addBook.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
新增书籍
7.3 书籍的修改和删除功能
在allBook.jsp中的书籍信息后面添加修改和删除按钮
在controller层写修改和删除的方法
//跳转到修改页面
@RequestMapping("/toUpdate")
public String toUpdatePaper(int id,Model model){
Books books = bookService.queryBookById(id);
model.addAttribute("QBook",books);
return ("updateBook");
}
//修改书籍的请求
@RequestMapping("/updateBook")
public String updateBook(Books books){
System.out.println("updateBook"+books);
bookService.updateBook(books);
return "redirect:/book/allBook";
}
//删除书籍
@RequestMapping("/deleteBook/{bookId}")
public String deleteBook(@PathVariable("bookId") int id){
bookService.deleteBookById(id);
return "redirect:/book/allBook";
}
在jsp包中写相对应的页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
修改书籍
7.4 书籍的查询
<%--查询书籍--%>
controller层
//查询书籍
@RequestMapping("/queryBook")
public String queryBook(String queryBookName,Model model){
Books books = bookService.queryBookByName(queryBookName);
System.err.println("queryBook=>"+books);
List
list.add(books);
if(books==null){
list = bookService.queryAllBook();
model.addAttribute("error","未查到");
}
model.addAttribute("list",list);
return "allBook";
}
dao层
//查询全部的书,BookMapper.java
List
Books queryBookByName(@Param("bookName") String bookName);
service层
//BookService.java
Books queryBookByName(@Param("bookName") String bookName);
public Books queryBookByName(String bookName) {
return bookMapper.queryBookByName(bookName);
}
8、SSM项目整合完毕全部代码

浙公网安备 33010602011771号