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

SSM框架学习笔记之SSM框架整合

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

SSM框架学习笔记之SSM框架整合

原始整合方式环境搭建

项目目录结构如图

1.创建数据库和表结构

create database ssm;
use ssm;
create table account (
id int primary key auto_increment,
name varchar(50),
money double
);

2.创建maven的工程导入坐标

代码示例:
//pom.xml



    4.0.0

    org.example
    ssm_test
    1.0-SNAPSHOT

    
        16
        16
        5.0.2.RELEASE
        1.6.6
        1.2.12
        5.1.6
        3.4.5
    

    
        
        
            org.aspectj
            aspectjweaver
            1.6.8
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-test
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        

        
        
            javax.servlet
            servlet-api
            2.5
            provided
        
        
            javax.servlet.jsp
            jsp-api
            2.0
            provided
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        
        
            org.mybatis
            mybatis-spring
            1.3.0
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
        
            c3p0
            c3p0
            0.9.1.2
            jar
            compile
        
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
            junit
            junit
            4.12
            compile
        
        
            jstl
            jstl
            1.2

         
        
            log4j
            log4j
            ${log4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
         
    
    
        
            
                src/main/java
                
                    **/*.xml
                
            
        
    

3.编写实体类

代码示例:
//Account.java

public class Account {
    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;
    }
}

4.编写Mapper接口

代码示例:
//AccountMapper.java

public interface AccountMapper {

    public void save(Account account);

    public List findAll();

}

5.编写Service接口

代码示例:
//AccountService.java

public interface AccountService {
    
    public void save(Account account);

    public List findAll();
}

6.编写service接口实现

代码示例:
//AccountServiceImpl.java

package com.xc.service.impl;

import com.xc.domain.Account;
import com.xc.mapper.AccountMapper;
import com.xc.service.AccountService;
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.springframework.stereotype.Service;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

@Service("accountService")
public class AccountServiceImpl implements AccountService {
    @Override
    public void save(Account account) {
        try {
            InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            AccountMapper mapper = sqlSession.getMapper(AccountMapper.class);
            mapper.save(account);
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public List findAll() {
        try {
            InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            AccountMapper mapper = sqlSession.getMapper(AccountMapper.class);
            List accountList = mapper.findAll();
            sqlSession.close();
            return accountList;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

7.编写Controller

代码示例:
//AccountController.java

package com.xc.controller;

import com.xc.domain.Account;
import com.xc.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.io.IOException;
import java.util.List;

@Controller//实例化,把AccountController装到spring容器中
@RequestMapping("/account")//指定是account模块的
public class AccountController {

    @Autowired//注入AccountService
    private AccountService accountService;

    //保存
    @RequestMapping("/save")
    @ResponseBody//代表字符串直接进行展示,无需进行页面跳转
    public String save(Account account) throws IOException {
        accountService.save(account);
        return "数据保存成功!";
    }
    
    //查询
    @RequestMapping("/findAll")
    public ModelAndView findAll(){
        List accountList = accountService.findAll();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("accountList",accountList);
        modelAndView.setViewName("accountList");
        return modelAndView;
    }
}

8.编写添加页面

代码示例:
//save.jsp

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

  
    $Title$
  
  
      

添加账户信息表单

账户名称:
账户金额:

9.编写列表页面

代码示例:
//accountList.jsp

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


    Title


    

展示账户数据列表

账户id: 账户名称: 账户金额:
${account.id} ${account.name} ${account.money}

10.编写相应的配置文件

  • Spring配置文件:applicationContext.xml
  • SpringMVC配置文件:spring-mvc.xml
  • MyBaits映射文件:AccountMapper.xml(根据业务需求命名)
  • MyBaits核心文件:sqlMapConfig.xml
  • 数据库连接信息文件:jdbc.properties
  • Web.xml文件:web.xml
  • 日志文件:log4j.xml
代码示例:
//applicationContext.xml



    
    
        
        
    

代码示例:
//spring-mvc.xml




    
    
    
    
    
    
    
    
        
        
    
    
    
    
    

代码示例:
//AccountMapper.xml





    
        insert into account values(#{id},#{name},#{money})
    
    
    
        select * from account
    

代码示例:
//sqlMapConfig.xml







    
    

    
        
    

    
    
        
    


    
    
        
            
            
                
                
                
                
            
        
    

    
    
        
        
    



代码示例:
//log4j.properties

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
代码示例:
//web.xml




        
        
                contextConfigLocation
                classpath:applicationContext.xml
        
        
                org.springframework.web.context.ContextLoaderListener
        
        
        
        
                DispatcherServlet
                org.springframework.web.servlet.DispatcherServlet
                
                        contextConfigLocation
                        classpath:spring-mvc.xml
                
                1
        
        
                DispatcherServlet
                /
        
        
        
        
                CharacterEncodingFilter
                org.springframework.web.filter.CharacterEncodingFilter
                
                        encoding
                        UTF-8
                
        
        
                CharacterEncodingFilter
                /*
        
        

代码示例:
//jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/xxx(自己的数据库名字)
jdbc.username=xxx
jdbc.password=xxxx

测试截图:




整合思路
  • 先搭建整合的环境
  • 把Spring的配置搭建完成
  • 再使用Spring整合SpringMVC框架
  • 之后使用Spring整合MyBatis框架
  • 最后spring整合mybatis框架配置事务(Spring的声明式事务管理)
代码示例:

//sqlMapConfig-spring.xml





    
        
    

    
    
        
    


代码示例:
//applicationContext.xml




    
    
        
        
    

    
    

    
    
        
        
        
        
    

    
    
        
        
        
    

    
    
        
    

    

    
    
        
    
    
    
        
            
        
    

    
    
        
    


代码示例:
//AccountServiceImpl.java

@Service("accountService")
public class AccountServiceImpl implements AccountService {

    @Autowired
    private AccountMapper accountMapper;

    @Override
    public void save(Account account) {
        accountMapper.save(account);
    }

    @Override
    public List findAll() {
        return accountMapper.findAll();
    }
}

除了这三个文件要改,其他文件和原始整合方式一样

测试截图:


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

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

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