create database cjgl;
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,'从进门到进牢');
鼠标右键点击SSMZH,添加框架框架支持
选中web应用程序点击确定
org.springframework spring-webmvc 5.3.9 org.springframework spring-jdbc 5.3.9 junit junit 4.13.2 test mysql mysql-connector-java 8.0.17 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.apache.tomcat tomcat 8.5.38 pom org.mybatis mybatis 3.5.6 org.mybatis mybatis-spring 2.0.5 src/main/java **/*.properties **/*.xml false src/main/resources **/*.properties **/*.xml false UTF-8
鼠标右键点击文件选择项目结构,选择工件,在可用元素中点击第一个按住shift在点击最后一个全选,点击鼠标右键,置于/WEB-INF/lib然后点击确定
yj.com.pojo
yj.com.mapper(dao)
yj.com.service
yj.com.controller
Books中一个四个属性,与表中属性必须的相对应
全部代码如下:
package yj.com.pojo;
public class Books {private int bookID;private String bookName;private int bookCounts;private String detail;//添加无参构造、有参构造、getter/setter方法和tostring方法public Books() {}public Books(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;}@Overridepublic String toString() {return "Books{" +"bookID=" + bookID +", bookName='" + bookName + '\'' +", bookCounts=" + bookCounts +", detail='" + detail + '\'' +'}';}
}
创建相关操作
package yj.com.mapper;
import yj.com.pojo.Books;
import java.util.List;
public interface BookMapper{//增加一个Bookint addBook(Books books);//根据id删除一个Bookint deleteBookById(int id);//更新Bookint updateBook(Books books);//根据id查询,返回一个BookBooks queryBookById(int id);//查询全部Book,返回list集合List queryAllBook();
}
insert into cjgl.books(bookName,bookCounts,detail)values (#{bookName}, #{bookCounts}, #{detail}) delete from cjgl.books where bookID=#{bookID} update cjgl.booksset bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
做的业务和dao层的一样
package yj.com.service;
import yj.com.pojo.Books;
import java.util.List;
public interface BookService {//增加一个Bookint addBook(Books books);//根据id删除一个Bookint deleteBookById(int id);//更新Bookint updateBook(Books books);//根据id查询,返回一个BookBooks queryBookById(int id);//查询全部Book,返回list集合List queryAllBook();
}
package yj.com.service;
import yj.com.mapper.BookMapper;
import yj.com.pojo.Books;
import java.util.List;
//实现BookService 重写抽象方法
public class BookServiceImpl implements BookService{//服务层连接dao层//创建一个dao层对象private BookMapper bookMapper;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 Books queryBookById(int id) {return bookMapper.queryBookById(id);}public List queryAllBook() {return bookMapper.queryAllBook();}
}
package yj.com.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import yj.com.service.BookService;
@Controller
@RequestMapping("/book")
public class BookController {//控制器调用Service层@Autowiredprivate BookService bookService;
}
服务层(BookService)调用dao层(BookMapper),dao层调用pojo,控制器调用服务层
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cjgl?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=
此处正常有两处应该是红的,如果不是则前面有错误(文件没配置完所以报红)
DispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:applicationContext.xml 1 DispatcherServlet / CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 CharacterEncodingFilter /* 15

<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/5Time: 15:12To change this template use File | Settings | File Templates.
--%>
<<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
首页
点击进入图书管理列表
package yj.com.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import yj.com.pojo.Books;
import yj.com.service.BookService;
import java.util.List;
@Controller
@RequestMapping("/book")
public class BookController {//控制器调用Service层@Autowiredprivate BookService bookService;@RequestMapping("allBook")public String list(Model model) {List list = bookService.queryAllBook();model.addAttribute("list", list);return "allBook";}
}
<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/6Time: 9:59To change this template use File | Settings | File Templates.
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
书籍列表
书籍列表 —— 显示所有书籍
添加配置,点击加号,找到Tomcat Server 本地服务,名称随便什么,应用程序服务器如下tomcat233,部署配置如下点击加号,添加工件,应用程序上下文改为:“/”,然后确定
在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";}
在jsp下创建配置addBook.jsp文件
<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/6Time: 10:13To change this template use File | Settings | File Templates.
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
新增书籍
新增书籍
在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("book",books);return "redirect:/book/allBook";}@RequestMapping("/del/{bookID}")public String deleteBook(@PathVariable("bookID") int id){bookService.deleteBookById(id);return "redirect:/book/allBook";}
在jsp下创建配置updateBook.jsp文件
<%--Created by IntelliJ IDEA.User: yangjDate: 2022/12/6Time: 10:24To change this template use File | Settings | File Templates.
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
修改信息
修改信息
注意:如果遇见这个问题,无法从底层数据库获取连接! 一般是一下几个问题: