关于SSM框架的一个简单Demo

项目是使用maven创建的,所以不懂maven的请先了解学习一下maven的基础知识,编程工具选择使用的是IDEA。
首先,当然是SSM所需要的jar包,如下:


        4.3.18.RELEASE
        
        1.7.7
        1.2.17
    

    
        
            junit
            junit
            3.8.1
            
            test
        

        
        
            org.springframework
            spring-context
            ${spring-version}
        
        
            org.springframework
            spring-core
            ${spring-version}
        
        
            org.springframework
            spring-aop
            ${spring-version}
        
        
            org.springframework
            spring-beans
            ${spring-version}
        
        
            org.springframework
            spring-web
            ${spring-version}
        
        
            org.springframework
            spring-oxm
            ${spring-version}
        
        
            org.springframework
            spring-tx
            ${spring-version}
        
        
            org.springframework
            spring-jdbc
            ${spring-version}
        
        
            org.springframework
            spring-webmvc
            ${spring-version}
        
        
            org.springframework
            spring-context-support
            ${spring-version}
        
        
            org.springframework
            spring-test
            ${spring-version}
        
        

        
        
            org.mybatis
            mybatis
            3.4.1
        
        
        
            org.mybatis
            mybatis-spring
            1.3.1
        
        

        
        
            javax
            javaee-api
            7.0
        

        
        
            mysql
            mysql-connector-java
            5.1.38
        

        
        
            commons-dbcp
            commons-dbcp
            1.2.2
        

        
        
        
            log4j
            log4j
            ${log4j.version}
        


        
        
            com.alibaba
            fastjson
            1.1.41
        


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

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

        
        
            commons-fileupload
            commons-fileupload
            1.3.1
        
        
            commons-io
            commons-io
            2.4
        
        
            commons-codec
            commons-codec
            1.9
        
        
            junit
            junit
            RELEASE
            test
        

    

接着spring-mvc.xml 文件如下:




    
    
    
    

    
    
        
        
        
        
        
        
        
        
    

    
    
        
        
        
    

还有web.xml 文件如下:



  Archetype Created Web Application

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

  
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:spring/spring-mvc.xml
    
    1
    true
  
  
    SpringMVC
    /
  
  
    /index.jsp
  

此处我的配置路径是:

关于SSM框架的一个简单Demo_第1张图片

先写一个Controller,测试web访问正确。

IndexController 代码如下:

package com.cn.demo.controller;

import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author: Orine
 * @Date: 2018/10/25
 */
@RestController
public class IndexController {

    private static final Logger LOGGER = Logger.getLogger(IndexController.class);

    @GetMapping("/{string}")
    public String index(@PathVariable("string") String s) {
        LOGGER.info(s);
        LOGGER.warn(s);
        LOGGER.error(s);
        return s;
    }
}

由于我这里用到了日志,所以也将日志配置贴出:

log4j.rootLogger=INFO,Console,File  
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [%c] %L %-5p : %m%n
log4j.appender.Console.Encoding=UTF-8  


#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender  
#指定输出目录
log4j.appender.File.File = logs/ssm.log  
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB  
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

此时我们启动tomcat,可以看到如下信息:

关于SSM框架的一个简单Demo_第2张图片

到此,我们的web可以正常访问。接下来配置MyBatis的东西了。

spring-mybatis.xml 代码如下:




    

    
        
    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
        
    

    
    
        
    

数据库连接属性,jdbc.properties 文件如下:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test1
username=root
password=root
#定义初始连接数
initialSize=0  
#定义最大连接数
maxActive=20  
#定义最大空闲
maxIdle=20  
#定义最小空闲
minIdle=1  
#定义最长等待时间
maxWait=60000 

本次Demo我是使用IDEA编写,所以也增加了一个Mybatis的生成插件:

在pom.xml文件中添加:


        spring-mybatis
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.7.0
                
                    1.8
                    1.8
                    UTF8
                
            
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.5
                
                    src/main/resources/mybatis-generatorConfig/generatorConfig.xml
                    true
                    true
                
                
                    
                        Generate MyBatis Artifacts
                        
                            generate
                        
                    
                
                
                    
                        org.mybatis.generator
                        mybatis-generator-core
                        1.3.5
                    
                
            
        
    

其中上部分plugin是打包插件,后一部分是mybatis的代码生成插件。

还需要相应的插件配置文件,generatorConfig.xml 如下:







    


    

    
    


    
    
        
        
        
        
        
        
        
        

        
        
            
            
        


        
        
        

        
        
            
        

        
        
            
            
        

        
        
            
            

            
            
            
            

            
            

            
            
        


        
        
            
            
        


        
        
            
            

            
        

        
        

此文件需要一个 mysql-connector-java 的jar包路径,这里你可以选择一个包含此包的路径即可,放在: classPathEntry 里。

你需要创建相应的数据库和表:

关于SSM框架的一个简单Demo_第3张图片

这是便可以通过如下方式直接生成相应的代码:

关于SSM框架的一个简单Demo_第4张图片

红框中的既是通过插件生成的代码:

关于SSM框架的一个简单Demo_第5张图片

此时我们可以编写Service,如ArticleService 和 ArticleServiceImpl 代码如下:

package com.cn.demo.service;

import com.cn.demo.model.Article;

/**
 * @Author: Orine
 * @Date: 2018/10/25
 */
public interface ArticleService {

    public int save(Article article);

    public Article findOneById(Integer id);
}
package com.cn.demo.service.impl;

import com.cn.demo.dao.ArticleMapper;
import com.cn.demo.model.Article;
import com.cn.demo.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @Author: Orine
 * @Date: 2018/10/25
 */
@Service
public class ArticleServiceImpl implements ArticleService {

    @Autowired
    private ArticleMapper articleMapper;

    @Override
    public int save(Article article) {
        return articleMapper.insert(article);
    }

    @Override
    public Article findOneById(Integer id) {
        return articleMapper.selectByPrimaryKey(id);
    }
}

测试代码:

import com.cn.demo.model.Article;
import com.cn.demo.service.ArticleService;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.Date;

/**
 * @Author: Orine
 * @Date: 2018/10/25
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/spring-mybatis.xml"})
public class Test1 {

    private static final Logger LOGGER = Logger.getLogger(Test1.class);

    @Autowired
    private ArticleService articleService;

    @Before
    public void save() {
        Article article = new Article();
        article.setTitle("c");
        article.setContent("ccc");
        article.setCreateTime(new Date());
        int i = articleService.save(article);
        LOGGER.info(i);
    }

    @Test
    public void findArticle() {
        LOGGER.info(articleService.findOneById(1).toString());
    }
}

如此,运行测试代码之后查看数据库发现数据库表中增加了数据的话那就完成,本次的精简ssm框架搭建就可以了。

还有本次Demo代码已放在了github上面,地址是:https://github.com/OrineK/spring-mybatis-demo

本人菜鸟,所有东西都在学习当中,如有各种建议想法欢迎交流。

你可能感兴趣的:(spring,springmvc,java,mybatis,mysql,java,MyBatis,MySql,Spring,SpringMVC,maven)