spring架构---手把手教你ssm搭建架构

ssm框架指的是在web开发中使用spring,spring-mvc,MyBatis三种框架

Spring

       Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

SpringMVC  

        Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis

       MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

 

之前准备工作:

开发环境搭建 :

可参考别人的博文:   http://blog.csdn.net/zhshulin/article/details/30779873

Maven Web项目创建:

可参考别人的博文:    http://blog.csdn.net/zhshulin/article/details/37921705


正式工作:

首先如图这样来创建一个maven项目,具体内容可以不写,但是路径和文件名称必须保持一致,路径和名称请不要嫌麻烦自己随意使用,等你真正掌握ssm框架后建议可以自己来改一下路径和名称.

spring架构---手把手教你ssm搭建架构_第1张图片 spring架构---手把手教你ssm搭建架构_第2张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

给maven项目导入依赖:

 为了方便后面说的时候不需要引入JAR包,我这里直接给出所有需要的JAR包,这都是基本的JAR包,每个包的是干什么的都有注释,就不再多说了。

pom.xml


		
		4.3.8.RELEASE
		UTF-8
	
  
    
      junit
      junit
      3.8.1
      test
    
    		
			junit
			junit
			3.8.1
			test
		
		
			javax.servlet
			javax.servlet-api
			3.0.1
			provided
		
		        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        

        
        
            org.aspectj
            aspectjrt
            1.8.0
        
        
            org.aspectj
            aspectjweaver
            1.8.0
        

        
        
            org.mybatis
            mybatis
            3.3.0
        
        
        
            mysql
            mysql-connector-java
            5.1.26
        
        
        
            com.alibaba
            druid
            1.0.20
        

        
        
            org.mybatis
            mybatis-spring
            1.2.3
        

        
        
            javax.servlet
            jstl
            1.2
            compile 
        
		
		
		    com.google.code.gson
		    gson
		    2.8.5
		
        
        
            log4j
            log4j
            1.2.17
        
        
            org.slf4j
            slf4j-api
            1.7.21
        
		
		
		
	
		
			org.apache.poi
			poi
			3.8
			
				
					commons-codec
					commons-codec
				
			
		
		
			org.apache.poi
			poi-ooxml
			3.8
		
		
		 
            commons-fileupload
            commons-fileupload
            1.2.1
        
        
        
            commons-io
            commons-io
            2.4
        
        
        
		    org.springframework
		    spring-context-support
		    5.0.0.RELEASE
		
		
		
		      com.sun.mail
		      javax.mail
		      1.6.1
		
  
  
    Myssm
    
		 
            src/main/resources/spring/db.properties
        
		 
            
                src/main/resources
                true
            
        
        
            
                src/main/resources
                true
            
            
                src/test/resources
            
        
        target/classes
        target/test-classes
        src/main/script
		
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.8
					1.8
					UTF-8  
				
			
		
  

 建立spring-mybatis.xml配置文件

spring-mybatis.xml



    
    
    

    
    
        
        
        
        
    

    
    
        
        
        
        
    
    
    
    
        
        
    
    	
	
		
	

  建立spring-mvc.xml配置文件

 spring-mvc.xml



	
	

	
	

	
	

	
	
		
		
	

	
		
		
		
	
	
	
	
	
	
		
		
		
		
		
			
				${mail.smtp.auth}
				${mail.smtp.timeout}
			
		
	

建立数据库测试用表:

既然我们需要测试,那么我们就需要建立在数据库中建立一个测试表,这个表建的很简单,SQL语句为:

DROP TABLE IF EXISTS `user_t`;
 
CREATE TABLE `user_t` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(40) NOT NULL,
  `password` varchar(255) NOT NULL,
  `age` int(4) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
 
/*Data for the table `user_t` */
 
insert  into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'测试','sfasgfaf',24);

建立后的表样式:

spring架构---手把手教你ssm搭建架构_第3张图片 

建立JDBC属性文件:

jdbc.properties(文件编码修改为utf-8)

(******mail.properties在这个项目中,我们并没有用到,可以删去******)

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/zhoutian
jdbc.username=root
jdbc.password=123456

 

可以利用MyBatis Generator自动创建代码
参考博文:http://blog.csdn.net/zhshulin/article/details/23912615

       这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口,当然,我习惯将生成的接口名改为UserMapper,生成的类实体为User,生成的MyBatis映射文件为UserMapper.xml。完成后将文件复制到工程中。如图:

spring架构---手把手教你ssm搭建架构_第4张图片

不过我在这里直接给出他们三个的代码,如果有修改路径名的同学务必注意xml映射文件中有许多地方需要修改,并且在上面的配置文件中也需要写出正确的文件路径,所以还是再次建议大家再搭好整个框架了解并熟悉后可以自己从头到尾自己搭一个.

 User.java

package com.qcb.entitys;

public class User {
    private Integer id;

    private String userName;

    private String password;

    private Integer age;

    public Integer getId() {
        return id;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

 UserMapper.java

import com.qcb.entitys.User;

public interface UserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}

UserMapper.xml




  
    
    
    
    
  
  
    id, user_name, password, age
  
  
  
    delete from user_t
    where id = #{id,jdbcType=INTEGER}
  
  
    insert into user_t (id, user_name, password, 
      age)
    values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
      #{age,jdbcType=INTEGER})
  
  
    insert into user_t
    
      
        id,
      
      
        user_name,
      
      
        password,
      
      
        age,
      
    
    
      
        #{id,jdbcType=INTEGER},
      
      
        #{userName,jdbcType=VARCHAR},
      
      
        #{password,jdbcType=VARCHAR},
      
      
        #{age,jdbcType=INTEGER},
      
    
  
  
    update user_t
    
      
        user_name = #{userName,jdbcType=VARCHAR},
      
      
        password = #{password,jdbcType=VARCHAR},
      
      
        age = #{age,jdbcType=INTEGER},
      
    
    where id = #{id,jdbcType=INTEGER}
  
  
    update user_t
    set user_name = #{userName,jdbcType=VARCHAR},
      password = #{password,jdbcType=VARCHAR},
      age = #{age,jdbcType=INTEGER}
    where id = #{id,jdbcType=INTEGER}
  

建立Service接口和实现类

 

spring架构---手把手教你ssm搭建架构_第5张图片

我们给出这两个文件的代码:

UserService.java

package com.qcb.services;

import com.qcb.entitys.User;

public interface IUserService {
	public User getUserById(int userId);
}

 UserServiceImpl.java

 

package com.qcb.serviceimpl;
import javax.annotation.Resource;


import org.springframework.stereotype.Service;

import com.qcb.dao.UserMapper;
import com.qcb.entitys.User;
import com.qcb.services.IUserService;

@Service("userService")
public class UserServiceImpl implements IUserService {
	@Resource
	private UserMapper userDao;
	@Override
	public  User getUserById(int userId) {
		System.out.println(111);
		System.out.println(userId);
		// TODO Auto-generated method stub
		return this.userDao.selectByPrimaryKey(userId);
	}
 
}

实现Controller对前后台数据交互的处理:

Mycontroller.java

package com.qcb.controllers;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.qcb.entitys.User;
import com.qcb.serviceimpl.UserServiceImpl;
import com.qcb.services.IUserService;


@Controller

public class Mycontroller {
	@Resource
	private IUserService userService;
	@RequestMapping(value ="views/hello",method ={RequestMethod.GET})
    public ModelAndView hello(String id){
    	System.out.println("0123");
    	int userId = Integer.parseInt(id);
		User user = this.userService.getUserById(userId);
    	ModelAndView mv = new ModelAndView();
    	System.out.println("1234");
    	System.out.println(user.getUserName());
    	mv.addObject("message","ooooooooooooooo");
    	mv.setViewName("NewFile");
        return mv;
    }
}

一直到这里,我们所有关于后端框架已经搭建完毕,我们写一个小jsp页面来显示一下:

NewFile.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>




Insert title here


     *******网页请求后面必须加上?分隔符和参数id=1

spring架构---手把手教你ssm搭建架构_第6张图片                  这时候控制台输出我们从数据库拿到的信息 "测试"

(不过大家也可以稍微改动一下Mycontroller中的方法,就可简单让页面显示输出的"测试")

------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 

 未完待续.....

 

 

 

 

你可能感兴趣的:(Spring架构)