栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC-狂神(整合SSM框架)2021-10-03

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC-狂神(整合SSM框架)2021-10-03

SpringMVC-狂神(整合SSM框架)

1、整合SSM 1. 环境要求

环境:

IDEA / Eclipse
MySQL 5.7 +
Tomcat 9
Maven 3.6

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

2. 数据库环境

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

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,'从进门到进牢');
3. 基本环境搭建
  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
   

  1. Maven资源过滤设置

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

  1. 建立基本结构和配置框架

    1. com.tree.pojo

    2. com.tree.dao

    3. com.tree.service

    4. com.tree.controller

    5. mybatis-config.xml

    
    
    
    
    
    
    1. applicationContext.xml
    
    
    
    
    
4. 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
  1. 关联数据库,测试连接
  2. 编写MyBatis的核心配置文件




    
        
    
    

  1. 编写数据库对应的实体类 com.tree.pojo.Books
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;
   
}
  1. 编写Dao层的 Mapper接口
import com.pojo.Books;
import java.util.List;

public interface BookMapper {
    //增加一本书
    int addBook(Books book);
    //删除一本书
    int deleteBookById(@Param("bookId") int id);
    //修改一本书
    int updateBook(Books book);
    //查询一本书
    Books queryBookById(@Param("bookId") int id);
    //查询全部图书
    List queryAllBook();
}
  1. 编写接口对应的 Mapper.xml 文件。需要导入MyBatis的包




    
          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;
    

  1. 编写Service层的接口和实现类
    接口
public interface BookService {
    //增加一个Book
    int addBook(Books book);
    //根据id删除一个Book
    int deleteBookById(int id);
    //更新Book
    int updateBook(Books book);
    //查询一个Book
    Books queryBookById(int id);
    //查询全部Book,返回list集合
    List queryAllBook();
}

实现类

public class BookServiceImpl implements BookService {
    //调用Dao层
    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 book) {
        return bookMapper.updateBook(book);
    }

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

    public List queryAllBook() {
        return bookMapper.queryAllBook();
    }
}
5. Spring层编写
  1. 配置Spring整合MyBatis,我们这里数据源使用c3p0连接池
  2. 我们去编写Spring整合Mybatis的相关的配置文件
    spring-dao.xml



    
    

    
    
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
        
        
        
    


  1. Spring整合service层



    
    

    
    
        
    

    
    
        
        
    
    
    

  1. applicationContext.xml



    
    


6. SpringMVC层
  1. web.xml



    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
    
    
        springmvc
        /
    

    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        encodingFilter
        /*
    

    
    
        15
    

  1. 创建 spring-mvc.xml


    
    
    
    
    
    
    
    
    
        
        
    

Spring配置整合文件,applicationContext.xml




    
    
    


  1. Controller 和 视图层编写
    1. BookController 类编写 , 方法一:查询全部书籍
@Controller
@RequestMapping("/book")
public class BookController {
    //controller 调用service层
    @Autowired
    @Qualifier("BookServiceImpl")
    private BookService bookService;

    //查询全部的书籍,并且返回一个书籍页面
    @RequestMapping("/allBook")
    public String list(Model model){
        List list = bookService.queryAllBook();

        model.addAttribute("list",list);
        return "allBook";
    }
}

//Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。
//@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
//@Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。
//通过使用 @Qualifier 注解,我们可以消除需要注入哪个 bean 的问题

​ 2. 编写首页 index.jsp

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

  
    首页
  
  
      
         进入书籍页面
      
  

  1. 添加书籍页 addBook.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

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


    书籍列表
    
        #container{
            width: 1080px;
            height:900px;
            margin: 0 auto;
        }
    
    


    

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

        
            
                
                            
书籍编号 书籍名称 书籍数量 书籍详情
${book.bookID} ${book.bookName} ${book.bookCounts} ${book.detail}
  1. BookController 类编写 , 方法二:添加书籍
//跳转到增加书籍页面
@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";
}
  1. 添加书籍页面:addBook.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    添加书籍
    
    
    
        #container{
            width: 1080px;
            height:900px;
            margin: 0 auto;
        }
    


    

        
            
                
                    
                        新增书籍
                    
                
            
        
        
  1. BookController 类编写 ,修改书籍
// 修改页面
@RequestMapping("/toUpdate")
public String toUpdateBook(Model model,int id){
    Books books = bookService.queryBookById(id);
    model.addAttribute("books",books);
    return "updateBook";
}

@RequestMapping("/updateBook")
public String updateBook(Books book){
    bookService.updateBook(book);
    Books books = bookService.queryBookById(book.getBookID());
    return "redirect:/book/allBook";
}

updateBook.jsp

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


    修改书籍
    
    
        #container{
            width: 1080px;
            height:900px;
            margin: 0 auto;
        }
    


    
        
            
                
                    修改书籍
                
            
        
        

allBook.jsp


    
        
            ${book.bookID}
            ${book.bookName}
            ${book.bookCounts}
            ${book.detail}
            
                修改
                 | 
                删除
            
        
    

  1. BookController 类编写 , 方法四:删除书籍
//删除书籍
@RequestMapping("/deleteBook")
public String deleteBook(int id){
    bookService.deleteBookById(id);
    return "redirect:/book/allBook";
}

allBook.jsp


    
        
            ${book.bookID}
            ${book.bookName}
            ${book.bookCounts}
            ${book.detail}
            
                修改
                 | 
                删除
            
        
    

resful风格

//删除书籍
@RequestMapping("/deleteBook/{bookId}")
public String deleteBook(@PathVariable("bookId") int id){
    bookService.deleteBookById(id);
    return "redirect:/book/allBook";
}

    修改
     | 
    删除

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287755.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号