SpringMVC学习(SSM整合) 2019-11-21

B站教学 同步学习 运用Spring框架 编写书籍APP项目https://www.bilibili.com/video/av71874024?p=17

环境要求
  • IDEA
  • MySQL(使用Navicat Preminm数据库管理软件)
  • Tomcat
  • Maven
技术要求:
  • 熟练掌握数据库、spring、Javaweb、mybatis的知识,以及简单的前端知识
SpringMVC学习(SSM整合) 2019-11-21_第1张图片
简易开发步骤.PNG

第一部分:创建数据库阶段

  • 在Navicat Preminm中新建连接
    接口:3307
    用户名密码: root
  • 编写SQL语句
//创建数据源
CREATE DATABASE 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 '描述',
PRIMARY KEY (bookID) 
);
ENGINE=INNODB DEFAULT CHARSET(utf-8)

//插入3条数据
INSERT INTO books(bookID,bookName,bookCounts,detail)VALUES
(1,'java',12,'从入门到放弃'),
(2,'MySql',10,'从删库到跑路'),
(3,'Linux',5,'从进门到进牢');
  • 结果如下:


    SpringMVC学习(SSM整合) 2019-11-21_第2张图片
    数据库.PNG

第二部分:IDEA 编写SSM框架代码阶段

0. 准备工作:

  • 在IDEA中新建Maven工程
  • 新项目需要注意在 file->settings->Maven 中设置本地maven仓库
    具体操作请点击查看
SpringMVC学习(SSM整合) 2019-11-21_第3张图片
新项目的maven本地仓库设置.PNG
  • IDEA连接数据库的方法:


    SpringMVC学习(SSM整合) 2019-11-21_第4张图片
    IDEA连接数据库.PNG
  • 当点击测试出现因时区而产生错误时:

    • 解决办法1:
      SpringMVC学习(SSM整合) 2019-11-21_第5张图片
      服务器时区错误的解决办法1.PNG
    • 解决办法2:(未测试)


      SpringMVC学习(SSM整合) 2019-11-21_第6张图片
      服务器时区错误的解决办法-2.PNG

1. mybatis层:

SpringMVC学习(SSM整合) 2019-11-21_第7张图片
简单工程架构.PNG
  • 首先在pom.xml中配置依赖的jar包:


    4.0.0

    com.lht
    SpringBooks
    1.0-SNAPSHOT

    
    
        
        
            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
        

        
        
            org.projectlombok
            lombok
            1.16.10
        

    


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

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


  • 在main->resources下创建:
    applicationContext.xml
    database.properties
    mybatis-config.xml

    • applicationContext.xml中的内容:



    
    
    

    • database.properties中的内容:
jdbc.driver=com.mysql.jdbc.Driver
#如果使用的是MySQL8.0+,增加一个时区的配置;  &serverTimezone=Asia/Shanghai
jdbc.url=jdbc:mysql://localhost:3307/books?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root
    • mybatis-config.xml中的内容(这个文件是有关mybatis的全局配置):




    
    
    
        
    

    
    
        
        
    


有关typeAliases的详解

    • pojo中创建实体类(Books):
package com.lht.pojo;

import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

/**
 * 实体类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {

    private int bookID;
    private String bookName;
    private int bookCounts;
    private String detail;
}

有关lombok的详解

    • dao中创建A接口(DAO层操作):
package com.lht.dao;

import com.lht.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * DAO层
 */
public interface BookMapper {

    //添加书
    int addBook(Books books);

    //删除书
    int deleteBooksById(@Param("bookID") int id);//#{}里面的名称对应的是注解@Param括号里面修饰的名称。

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

    //查询书
    Books queryBookById(@Param("bookID") int id);

    //查询所有
    List queryAllBook();

}

有关@Param的详解

    • dao中创建A接口对应的SQL语句配置文件:



    
        insert into books.books(bookName, bookCounts, detail)
        values (#{bookName},#{bookCounts},#{detail})
    

    
        delete from books.books
        where bookID=#{bookID}
    

    
        update books.books
        set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
        where bookID=#{bookID}
    

    

    

    • service中创建B接口(业务层):
package com.lht.service;

import com.lht.pojo.Books;

import java.util.List;

/**
 * 业务层
 */
public interface BookService {

    //添加书
    int addBook(Books books);

    //删除书
    int deleteBooksById(int id);

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

    //查询书
    Books queryBookById(int id);

    //查询所有
    List queryAllBook();
}

    • service子文件夹impl中创建B接口的实现类(业务层操作):
package com.lht.service.impl;

import com.lht.dao.BookMapper;
import com.lht.pojo.Books;
import com.lht.service.BookService;

import java.util.List;

/**
 * 业务层调DAO层,实现具体方法:组合DAO
 */
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 deleteBooksById(int id) {
        //将来可以在此处横切、增强业务
        return bookMapper.deleteBooksById(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();
    }
}

2. spring层:

SpringMVC学习(SSM整合) 2019-11-21_第8张图片
spring层整合.png
  • 首先在resources下创建:
    spring-dao.xml
    spring-service.xml
    • spring-dao.xml是spring用来整合DAO的配置文件,内容:


    
    
    

    
    
    
        
        
        
        

        
        
        
        
        
        
        
        
        
    

    
    
    
        
        
        
    

    
    
    
        
        
        
        
    


    • spring-service.xml是spring用来整合service业务的配置文件,内容:



    
    

    
    
    
        
    

    
    
        
        
    

    
    

    


3. springMVC层:

SpringMVC学习(SSM整合) 2019-11-21_第9张图片
springMVC.PNG
  • 首先将SpringBooks项目右击->选择Add Frameworks Support->勾选Web Application添加:

    SpringMVC学习(SSM整合) 2019-11-21_第10张图片
    项目添加web工程的方法.PNG

  • WEB-INF下的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
    


  • resources下添加spring-mvc.xml,此配置文件是spring整合M(配置模型)V(配置视图解析器)C(配置控制器),内容:



    
    

    
    

    
    

    
    
       
       
    



  • applicationContext.xml是spring总配置文件,用来整合其他配置文件(使用import引入其他配置文件),内容:



    

    
    
    



第三部分:IDEA 编写业务/逻辑代码阶段

1. 查询书籍功能:

待续》》》

你可能感兴趣的:(SpringMVC学习(SSM整合) 2019-11-21)