Maven整合SSM框架开发流程

一、SSM各部分负责的功能

SpringMVC:负责MVC设计模式的实现。也就是客户端与Java程序之间的交互

Mybatis:负责数据持久层的实现。也就是Java程序与数据库的交互

Spring:负责管理SpringMVC和Mybatis相关对象的创建和依赖注入,同时将我们写的类交给Spring来管理

Maven整合SSM框架开发流程_第1张图片

二、Maven整合SSM过程

1、创建maven工程

Maven整合SSM框架开发流程_第2张图片

Maven整合SSM框架开发流程_第3张图片

2、在pom,xml中添加相关的依赖


  
  
    org.springframework
    spring-webmvc
    5.0.11.RELEASE
  
​
  
  
    org.springframework
    spring-jdbc
    5.0.11.RELEASE
  
​
  
  
    org.springframework
    spring-aop
    5.0.11.RELEASE
  
  
    org.springframework
    spring-aspects
    5.0.11.RELEASE
  
​
  
  
    org.mybatis
    mybatis
    3.4.5
  
​
  
  
    org.mybatis
    mybatis-spring
    1.3.1
  
​
  
  
    mysql
    mysql-connector-java
    8.0.11
  
​
  
  
    c3p0
    c3p0
    0.9.1.2
  
​
  
  
    jstl
    jstl
    1.2
  
​
  
  
    javax.servlet
    javax.servlet-api
    3.1.0
  
  
  
    junit
    junit
    4.11
    test
  

3、web.xml中配置SpringMVC、Spring、字符编码过滤器、加载静态资源。


  Archetype Created Web Application
  
  
    contextConfigLocation
    classpath:spring.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:springmvc.xml
    
  
  
    dispatcherServlet
    /
  
  
  
  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  
  
    characterEncodingFilter
    /*
  
  
  
  
    default
    *.js
  
  
    default
    *.css
  
  
    default
    *.jpg
  

4、在spring.xml中配置Mybatis和Spring的整合



​
    
    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
​
    
    
        
        
        
        
        
        
    
​
    
    
        
    

5、在mybatisConfig.xml中配置一些Mybatis的辅助信息,比如打印SQL等。




    
        
        
    
    
        
        
    

6、配置springmvc.xml



​
    
    
​
    
    
​
    
    
        
        
        
        
    

7、创建数据库表并输入测试数据

Maven整合SSM框架开发流程_第4张图片

8、编写实体类dao与数据表做ORM映射

public class Customer {
    private Integer id;
    private String name;
    private Integer age;
​
    @Override
    public String toString() {
        return "Customer{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
​
    public void setId(Integer id) {
        this.id = id;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public void setAge(Integer age) {
        this.age = age;
    }
​
    public Integer getId() {
        return id;
    }
​
    public String getName() {
        return name;
    }
​
    public Integer getAge() {
        return age;
    }
}

9、编写mapping.xml文件




    

10、编写mapper文件与mapping做映射

public interface CustomerRepository {
    public List findAll();
}

11、编写服务类接口,方便管理

public interface CustomerService {
    public List findAll();
}

12、编写服务类接口实现类

@Service
public class CustomerServiceImpl implements CustomerService {
    @Autowired
    private CustomerRepository customerRepository;
​
    @Override
    public List findAll() {
        return customerRepository.findAll();
    }
}

13、编写Controller,映射请求

@Controller
@RequestMapping("/customer")
public class CustomerHandler {
    @Autowired
    private CustomerService customerService;
​
    @RequestMapping("/findAll")
    public ModelAndView  findAll(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("showMessage");
        modelAndView.addObject("list",customerService.findAll());
        System.out.println(customerService.findAll());
        return modelAndView;
    }
}

14、编写结果展示页面showMessage.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


    Title


   
       ${customer.id}-----${customer.name}--------${customer.age}
 

15、将项目部署到tomcat上去

Maven整合SSM框架开发流程_第5张图片

Maven整合SSM框架开发流程_第6张图片 

Maven整合SSM框架开发流程_第7张图片 

 Maven整合SSM框架开发流程_第8张图片

16、启动Tomcat,访问http://localhost:8080/SSMProject_war/customer/findAll

Maven整合SSM框架开发流程_第9张图片

也可以在部署项目的时候修改项目的根路径

Maven整合SSM框架开发流程_第10张图片 

重启Tomcat服务器,访问地址http://localhost:8080/SSMProject_war/customer/findAll改为http://localhost:8080/customer/findAll

Maven整合SSM框架开发流程_第11张图片

三、启动服务器运行时可能出现的问题

1、mapper接口与mapping.xml配置文件无效绑定问题。

使用maven或Jenkins打包部署到远程服务器上时出现的绑定错误,异常信息为: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

首先,给定的异常提示信息并不精准,有多个错误原因都会抛出该异常。mybatis出现这个问题,通常是由Mapper interface和对应的xml文件的定义对应不上引起的,这时就需要仔细检查对比包名、xml中的namespace、接口中的方法名称等是否对应。

我之前就因为称忘记在xml标签的id属性中添加方法名或写错方法名而出现这个错误。

出现这个错误时,按以下步骤检查一般就会解决问题: 1:检查xml文件所在package名称是否和Mapper interface所在的包名一一对应; 2:检查xml的namespace是否和xml文件的package名称一一对应; 3:检查方法名称是否对应; 通过使用maven构建项目,并将项目war包部署到Tomcat时里面缺少Mapper对应的xml文件,也就是没有把xml文件打包进去。解决办法是,在pom.xml文件中的build标签中添加如下代码,显示的强制将xml文件打到war包中:


  
    src/main/java
    
      **/*.xml
    
    true
  

2、解决无法获取数据库连接 java.sql.SQLException: Connections could not be acquired from the underlying database

由于使用的mysql是5.6.24版本,而在pom.xml中配置的是版本是8.0.11,导致驱动版本与mysql版本不一致出现无法获取sql的底层连接

修改驱动版本为当前MySQL版本以下即可解决



  mysql
  mysql-connector-java
  
  
  5.1.49

但是此时要注意修改spring.xml中的数据库驱动信息




MySQL6之后的版本都是要指定时区serverTimezone的

spring: datasource: driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.0.100:3306/easyexcel?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false username: root password: 123456

3、控制台输出的SQL语句出现中文乱码

Maven整合SSM框架开发流程_第12张图片

首先修改IDEA的编码格式为UTF-8

Maven整合SSM框架开发流程_第13张图片

其次修改Tomcat的参数编码格式为UTF-8:-Dfile.encoding=UTF-8

Maven整合SSM框架开发流程_第14张图片

然后重启Tomcat即可

你可能感兴趣的:(maven,java,spring)