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

SSM框架整合

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

SSM框架整合

SSM整合

文章目录
  • SSM整合
    • 1、数据库环境
    • 2、基本环境的搭建
    • 3、Mybatis层编写
    • 4、Spring层
    • 5、SpringMVC层
    • 6、Controller 和 视图层编写
    • 7、项目结构图
    • 8、注意事项

1、数据库环境

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

CREATE TABLE `teacher` (
  `id` INT(10) NOT NULL,
  `name` VARCHAr(30) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师'); 

CREATE TABLE `student` (
  `id` INT(10) NOT NULL,
  `name` VARCHAr(30) DEFAULT NULL,
  `tid` INT(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fktid` (`tid`),
  CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8


INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('1', '小明', '1'); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('2', '小红', '1'); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('3', '小张', '1'); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('4', '小李', '1'); 
INSERT INTO `student` (`id`, `name`, `tid`) VALUES ('5', '小王', '1');
2、基本环境的搭建

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
           
               ***.xml
           
           false
       
       
           src/main/resources
           
               ***.xml
           
           false
       
   

4、建立基本结构和配置框架!

  • com.wenqian.pojo
  • com.wenqian.dao
  • com.wenqian.service
  • com.wenqian.controller
  • mybatis-config.xml





applicationContext.xml





3、Mybatis层编写

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

jdbc.driver=com.mysql.jdbc.Driver
#如果使用的是mysql8.0+,增加一个时区的配置
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=mysql

2、IDEA关联数据库

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




   
   
       
   
   
       
   


4、编写数据库对应的实体类 com.wenqian.pojo.Books

使用lombok插件!

package com.wenqian.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.wenqian.dao;

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

public interface BookMapper {

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

   //根据id删除一个Book
   int deleteBookById(@Param("bookID") int id);

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

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

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

}

6、编写接口对应的 Mapper.xml 文件(BookMapper.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
   

    
        select * from ssmbuild.books where bookName = #{bookName};
    

7、编写Service层的接口和实现类

接口:

package com.wenqian.service;

import com.wenqian.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();
    List queryBook(String bookName);
    Books queryBookByName(String bookName);
}

实现类:

package com.wenqian.service;

import com.wenqian.dao.BookMapper;
import com.wenqian.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();
    }
    public List queryBook(String bookName) {
        return bookMapper.queryBook(bookName);
    }
    public Books queryBookByName(String bookName) {
        return bookMapper.queryBookByName(bookName);
    }
}

OK,到此,底层需求操作编写完毕!

4、Spring层

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

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




    
    
    

    
    
    
        
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
    
        
        
        
        
    


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vcjv07Tb-1654416735063)(C:UserswenqianAppDataRoamingTyporatypora-user-images1654356884849.png)]

3、Spring整合service层




    
    

    
    
        
    

    
    
        
        
    

    

5、SpringMVC层

1、增加web的支持。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jq6llbYT-1654416735065)(C:UserswenqianAppDataRoamingTyporatypora-user-images1654357614980.png)]

web.xml




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

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

    
    
        15
    


2、spring-mvc.xml




    
    
    
    
    

    
    
        
        
        
    

    
    


3、Spring配置整合文件,applicationContext.xml




    
    
    

6、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

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/7/16 0016
  Time: 11:52
  To 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" %>


    书籍列表
    
    
    





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

    
        
            新增
            查询所有书籍
        
        
            <%--查询书籍--%>
            
${error}
<%--模糊查询书籍--%>
书籍编号 书籍名字 书籍数量 书籍详情 操作
${book.getBookID()} ${book.getBookName()} ${book.getBookCounts()} ${book.getDetail()} 更改 | 删除

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

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


    updateBook
    
    




    
        
            
                
                    修改书籍
                
            
        
    

    

8、BookController 类编写 , 方法四:删除书籍

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

9、配置Tomcat,进行运行!

7、项目结构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OWhvR8ap-1654416735066)(C:UserswenqianAppDataRoamingTyporatypora-user-images1654415979005.png)]

8、注意事项

网上的SSM框架整合,有些将所有配置都写在applicationContext.xml文件中,初学者可能容易搞混。

这里我们分工明确,写成3个配置文件,最后引入总的applicationContext.xml文件中。如图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xam6kENV-1654416735072)(C:UserswenqianAppDataRoamingTyporatypora-user-images1654358600631.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ike9vwK7-1654416735072)(C:UserswenqianAppDataRoamingTyporatypora-user-images1654358663712.png)]

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

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

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