【亲测】SSM框架整合详细环境搭建和源码地址

【亲测】SSM框架整合详细环境搭建和源码地址,第1张

【亲测】SSM框架整合详细环境搭建和源码地址

加油,新时代打工人!

MyBatis入门和环境搭建
MyBatis注解CRUD详细 *** 作
Spring MVC详细环境配置和入门
Spring MVC框架中的拦截器详细使用过程

更多知识访问以上文章

SSM整合思想
采用注解和xml方式进行整合ssm
1.首先搭建spring和springMVC以及mybatis环境
2.搭建spring
3.测试springMVC环境是否成功
4.spring整合springMVC
5.测试mybatis是否成功
6.spring整合mybatis

SSM整合详细步骤
  • 1.搭建整合环境
    • 1.pom.xml 添加坐标依赖
    • 2.数据库脚本
    • 3. 编写mapper
    • 4.编写dao层
    • 5.编写service接口和实现类
    • 6.目录结构
  • 2.搭建Spring环境和测试
    • 1.在resources添加applicationContent.xml
    • 2.测试方法和结果截图
  • 3.搭建Spring MVC开发环镜和测试
    • 1.配置web.xml
    • 2. 在resources中创建springmvc.xml
    • 3.创建list.jsp页面
    • 4.创建controller编写测试方法
    • 5.Spring MVC测试结果
  • 4.Spring整合Spring MVC的框架
    • 1. 目的:在controller中能成功的调用service对象中的方法
    • 2.配置ContextLoaderListener监听器
    • 3.在controller注入service
    • 4.运行截图
  • 5.Spring整合MyBatis框架
    • 1.搭建和测试MyBatis的环境
    • 2.dao层添加注解
    • 3.测试Mybatis
      • 1.测试查询结果截图
      • 2.测试保存结果截图
  • 6.Spring整合MyBatis框架
    • 1.添加SqlMapConfig.xml配置文件信息
    • 2. 在AccountDao接口中添加@Repository注解
    • 3.编写controller循环输出结果
    • 4.测试运行结果截图
    • 5.配置Spring的声明式事务管理
    • 6.编写webapp下index.jsp页面
    • 7. 编写保存controller
    • 8.测试运行结果截图
  • 7.github项目源码

1.搭建整合环境 1.pom.xml 添加坐标依赖



  4.0.0

  com.itboy
  ssm
  1.0-SNAPSHOT
  war

  ssm Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.8
    1.8
    
    5.2.6.RELEASE
    1.6.1
    1.2.12
    5.1.6
    3.4.6
  

  
    

      
      
        org.aspectj
        aspectjweaver
        1.9.7
        runtime
      

    
      org.springframework
      spring-aop
      ${spring.version}
    

    
      org.springframework
      spring-context
      ${spring.version}
    


    
      org.springframework
      spring-web
      ${spring.version}
    

    
      org.springframework
      spring-webmvc
      ${spring.version}
    

    
      org.springframework
      spring-test
      ${spring.version}
    

    
      org.springframework
      spring-tx
      ${spring.version}
    

    
      org.springframework
      spring-jdbc
      ${spring.version}
    

    
      junit
      junit
      4.12
      compile
    

    
      mysql
      mysql-connector-java
      ${mysql.version}
    

    
      javax.servlet
      servlet-api
      2.5
      provided
    

    
      javax.servlet.jsp
      jsp-api
      2.0
      provided
    
    
    
      jstl
      jstl
      1.1.2
    

    
    
      log4j
      log4j
      ${log4j.version}
    

    
      org.slf4j
      slf4j-api
      ${slf4j.version}
    

    
      org.slf4j
      slf4j-log4j12
      ${slf4j.version}
    
    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    

    
      org.mybatis
      mybatis-spring
      2.0.4
    
    
    
      c3p0
      c3p0
      0.9.5.2
      jar
      compile
    

  

  
    ssm
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  


2.数据库脚本

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `account`
-- ----------------------------
DROp TABLE IF EXISTS `account`;
CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `money` double DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of account
-- ----------------------------

3. 编写mapper

在 com.itboywh.domin 编写实体

package com.itboywh.domin;

import java.io.Serializable;


public class Accout implements Serializable {
    private Integer id;
    private String name;
    private Double money;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "Accout{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", money=" + money +
                '}';
    }
}

4.编写dao层
package com.itboywh.dao;

import com.itboywh.domin.Accout;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;


@Repository
public interface AccountDao {
        //保存账户
        public void saveAccount(Accout accout);
        //查询账户
        public List findAll();
}

5.编写service接口和实现类
package com.itboywh.service;

import com.itboywh.domin.Accout;


import java.util.List;



public interface AccoutService  {
    //保存账户
    public void saveAccount(Accout accout);
    //查询账户
    public List findAll();
}

package com.itboywh.service.impl;

import com.itboywh.dao.AccountDao;
import com.itboywh.domin.Accout;
import com.itboywh.service.AccoutService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service("accoutService")
public class AccourServiceImpl implements AccoutService {
    @Override
    public void saveAccount(Accout accout) {
        System.out.println("业务层:保存账户");
    }

    @Override
    public List findAll() {
        System.out.println("业务层:查询所有");
        return;
    }
}


6.目录结构

2.搭建Spring环境和测试 1.在resources添加applicationContent.xml


    
    
        
        
    
  

2.测试方法和结果截图
package com.itboywh.test;

import com.itboywh.service.AccoutService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;



public class springTest {
    @Test
    public void springrun1(){
        ApplicationContext ac=new ClassPathXmlApplicationContext("classpath:applictionContent.xml");
        AccoutService as= (AccoutService)ac.getBean("accoutService");
         as.findAll();
    }
}

运行截图,说明Spring环境搭建成功,为了不防止出错,我们整合一个环境进行测试,查看环境是否成功。

3.搭建Spring MVC开发环镜和测试 1.配置web.xml

在webapp包WEB-INF下 web.xml




  
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:springmvc.xml
    
    1
  
  
    dispatcherServlet
    /
  
  
  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  
  
    characterEncodingFilter
    
@Controller
@RequestMapping("/account")
public class AccountConterllor {
    @RequestMapping("findAll")
    public String findAll(){
        System.out.println("表现层:查询所有执行了");
        return "list";

    }
5.Spring MVC测试结果

页面点击链接,跳转成功到list.jsp页面

4.Spring整合Spring MVC的框架 1. 目的:在controller中能成功的调用service对象中的方法 2.配置ContextLoaderListener监听器

在项目启动的时候,就去加载applicationContext.xml的配置文件,在web.xml中配置ContextLoaderListener监听器(该监听器只能加载WEB-INF目录下的applicationContext.xml的配置文
件)。

  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
    contextConfigLocation
    classpath:applictionContent.xml
  
3.在controller注入service

在controller中注入service对象,调用service对象的方法进行测试

@Controller
@RequestMapping("/account")
public class AccountConterllor {
    @Autowired
    private AccoutService accoutService;
    @RequestMapping("findAll")
    public String findAll(){
        System.out.println("表现层:查询所有执行了");
        return "list";
    }

4.运行截图

说明控制器执行findAll()方法时,业务层service层也执行了

5.Spring整合MyBatis框架 1.搭建和测试MyBatis的环境

在resources中添加SqlMapConfig.xml,编写核心配置




    
    
        
            
            
                
                
                
                
            
        
    

    
    
        
        
    


2.dao层添加注解

在com.itboywh.dao添加注解sql语句

package com.itboywh.dao;

import com.itboywh.domin.Accout;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;


public interface AccountDao {
        //保存账户
        @Insert("insert into account(name,money) values(#{name},#{money})")
        public void saveAccount(Accout accout);
        //查询账户
        @Select("select * from account")
        public List findAll();
}

3.测试Mybatis
package com.itboywh.test;

import com.itboywh.dao.AccountDao;
import com.itboywh.domin.Accout;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;


public class MybatisTest {
    
    @Test
    public void run1() throws Exception{
        InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sessionFactory.openSession();
        AccountDao dao = sqlSession.getMapper(AccountDao.class);
        List list= dao.findAll();
        for(Accout accout:list){
            System.out.println(accout);
        }
        is.close();
        sqlSession.close();

    }

    
    @Test
    public void run2() throws Exception{
        InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        SqlSession sqlSession = sessionFactory.openSession();
        AccountDao dao = sqlSession.getMapper(AccountDao.class);
        Accout accout=new Accout();
        accout.setName("小亮");
        accout.setMoney(100000.00);
        dao.saveAccount(accout);
        //增删改需要提交事务
        sqlSession.commit();
        is.close();
        sqlSession.close();

    }
}

1.测试查询结果截图

2.测试保存结果截图

姓名小亮保存成功

6.Spring整合MyBatis框架 1.添加SqlMapConfig.xml配置文件信息

把SqlMapConfig.xml配置文件中的内容配置applicationContext.xml配置文件中

    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
2. 在AccountDao接口中添加@Repository注解

将AccountDao接口交给ioc容器管理

package com.itboywh.dao;

import com.itboywh.domin.Accout;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;


@Repository
public interface AccountDao {
        //保存账户
        @Insert("insert into account(name,money) values(#{name},#{money})")
        public void saveAccount(Accout accout);
        //查询账户
        @Select("select * from account")
        public List findAll();
}

3.编写controller循环输出结果

提交后在控制台输出结果和跳转查询所有的页面

@Controller
@RequestMapping("/account")
public class AccountConterllor {
    @Autowired
    private AccoutService accoutService;
    @RequestMapping("findAll")
    public String findAll(Model model){
        System.out.println("表现层:查询所有执行了");
       List list= accoutService.findAll();
       model.addAttribute("list",list);
        for(Accout accout:list){
           System.out.println(accout);
        }
        return "list";

    }

在list.jsp接收数据,

<%--
  Created by IntelliJ IDEA.
  User: 儒雅
  Date: 2021/11/20
  Time: 14:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%--<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>--%>


    Title


查询所有用户信息
${list}



4.测试运行结果截图

说明Spring 整合Mybatis成功

5.配置Spring的声明式事务管理

在resources下 applictionContent.xml配置事务管理器

 
    
        
    
    
    
        
            
            
    
    
    
    
        
    
6.编写webapp下index.jsp页面

添加保存表单

 
7. 编写保存controller 
    @RequestMapping("/save")
    public void save(Accout accout, HttpServletResponse response, HttpServletRequest request) throws Exception{
        System.out.println("表现层:保存账户执行了");
        accoutService.saveAccount(accout);
        response.sendRedirect(request.getContextPath()+"/account/findAll");
        return ;

    }
8.测试运行结果截图


提交后跳转查询所有页面

ps 心得体会:首先前面配置环境中添加坐标时遇到飘红的jar,看本地仓库是否有该jar,没有的话,进行下载
Mavem下载地址https://mvnrepository.com/

7.github项目源码

ssm整合源码地址:https://github.com/itboywh/ssm

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5562591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存