史上ssm最全的框架整合(一),讲解的真香,牛牛牛。

ssm框架整合(一),讲解的真香,牛牛牛

**学习目标**
  1. 了解SSM整合的系统架构设计
  2. 掌握SSM项目搭建步骤
  3. 掌握SSM开发步骤,实现登录功能

第1章 SSM系统架构设计

一、SSM层次模型

  1. ORM:MyBatis框架
    Spring Core:基于IoC和AOP的处理方式统一管理所有的JavaBean
    Web框架:Spring MVC
  2. 数据存储:MySQL
  3. 前端框架:
    JSP
    jQuery框架
    HTML5、CSS3

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第1张图片

二、SSM中的三层架构

第2章 项目环境搭建

2.1 数据库准备

资料中提供的sql文件,直接导入。

页面静态资源:

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第2张图片

2.2 SSM项目搭建

2.2.1 项目基本环境搭建

第一步:创建项目

我们采用maven来构建该项目。

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第3张图片

选择web项目的脚手架。

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第4张图片

设置GAV座标,大家可以设置为自己的座标,不一定要一样。

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第5张图片

项目创建好后,进行相关的设置。

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第6张图片

因为不同的电脑环境不同,所以需要检查自己的jdk版本的配置。本项目安装的是JDK13,使用的是JDK1.8编译级别,其他配置也可以,大家可以尝试。

还需要提醒大家注意的是web项目的pom.xml中packaging的值设置为war。

第二步:添加SSM相关依赖与插件

SSM整合需要的主要的依赖:

  • 数据库相关的依赖:mysql连接驱动、Druid数据源;

  • MyBatis相关的依赖:mybatis依赖、日志文件依赖;

  • Spring相关的依赖:spring-context、spring-jdbc、切点表达式解析aspectjweaver、spring-test;

  • Spring MVC相关的依赖:spring-webmvc、servlet-api、jsp-api、jstl;

  • json的支持依赖:jackson-core、jackson-annotations、jackson-databind

  • 整合包:mybatis-spring。

    mysql mysql-connector-java 8.0.21 org.mybatis mybatis 3.5.0 log4j log4j 1.2.12 junit junit 4.12
          
          
              org.springframework
              spring-context
              5.2.4.RELEASE
          
          
          
              org.aspectj
              aspectjweaver
              1.9.5
          
          
              org.springframework
              spring-jdbc
              5.2.4.RELEASE
          
          
              com.alibaba
              druid
              1.1.20
          
          
          
              org.springframework
              spring-test
              5.2.4.RELEASE
          
    
          
              org.springframework
              spring-webmvc
              5.2.4.RELEASE
          
    
        
          
              javax.servlet
              servlet-api
              2.5
              provided
          
          
              javax.servlet.jsp
              jsp-api
              2.1
              provided
          
          
              jstl
              jstl
              1.2
          
    
             
          
            com.fasterxml.jackson.core
            jackson-core
            2.9.8
          
          
            com.fasterxml.jackson.core
            jackson-annotations
            2.9.8
          
          
            com.fasterxml.jackson.core
            jackson-databind
            2.9.8
          
    
          
          
              org.mybatis
              mybatis-spring
              2.0.0
          
      
    

该项目使用的是mysql数据库版本为8.0.21,mysql驱动版本支持8.0以上版本的mysql。

目前需要添加的插件有:


    
				org.apache.maven.plugins
				maven-compiler-plugin
				3.1
				
					1.8
					1.8
					UTF-8
				
			

			
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				2.2
			

如果大家看到下面的错误信息,根据提示到maven菜单里更新一下项目就可以了。

第三步:添加配置文件信息

log4j.properties:

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

### 输出信息到控制抬 ###
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

db.properties:

mysql8的驱动配置与mysql5的配置是不同的。

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/dxhouse?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
jdbc.username=root
jdbc.password=root1234

mybatis-config.xml:





    
        
        

        
        

        
        
    

applicationContext.xml:




    
    
    
    
    
    
        
        
        
        
    
    
    
        
    
    
    

    
    
        
    

    
    
        
        
        
        
    

spring-mvc.xml:




    
    

    
    

    
    

    
    
        
        
    

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
        /*
    


2.2.3 页面资源导入

从课件的资料中导入,注意目录位置。

史上ssm最全的框架整合(一),讲解的真香,牛牛牛。_第7张图片

第3章 用户模块开发

3.1 用户登录

1、创建实体对象

package cn.icloudit.house.domain;

/**
 * 员工信息 
 */
public class Myemp {

	private int eid;
	private int pid;
	private int jid;
	private String ename;
	private String epsw;
	private String erealname;
	private String etel;
	private String eaddress;
	private String eflag;
	private String eremark;
	
	
	//一对多、多对一

	public Myemp() {
		super();
	}

	public Myemp(int eid, int pid, int jid, String ename, String epsw, String erealname, String etel, String eaddress,
			String eflag, String eremark) {
		super();
		this.eid = eid;
		this.pid = pid;
		this.jid = jid;
		this.ename = ename;
		this.epsw = epsw;
		this.erealname = erealname;
		this.etel = etel;
		this.eaddress = eaddress;
		this.eflag = eflag;
		this.eremark = eremark;
	}

	public int getEid() {
		return eid;
	}

	public void setEid(int eid) {
		this.eid = eid;
	}

	public int getPid() {
		return pid;
	}

	public void setPid(int pid) {
		this.pid = pid;
	}

	public int getJid() {
		return jid;
	}

	public void setJid(int jid) {
		this.jid = jid;
	}

	public String getEname() {
		return ename;
	}

	public void setEname(String ename) {
		this.ename = ename;
	}

	public String getEpsw() {
		return epsw;
	}

	public void setEpsw(String epsw) {
		this.epsw = epsw;
	}

	public String getErealname() {
		return erealname;
	}

	public void setErealname(String erealname) {
		this.erealname = erealname;
	}

	public String getEtel() {
		return etel;
	}

	public void setEtel(String etel) {
		this.etel = etel;
	}

	public String getEaddress() {
		return eaddress;
	}

	public void setEaddress(String eaddress) {
		this.eaddress = eaddress;
	}

	public String getEflag() {
		return eflag;
	}

	public void setEflag(String eflag) {
		this.eflag = eflag;
	}

	public String getEremark() {
		return eremark;
	}

	public void setEremark(String eremark) {
		this.eremark = eremark;
	}


	@Override
	public String toString() {
		return "Myemp [eid=" + eid + ", pid=" + pid + ", jid=" + jid + ", ename=" + ename + ", epsw=" + epsw
				+ ", erealname=" + erealname + ", etel=" + etel + ", eaddress=" + eaddress + ", eflag=" + eflag
				+ ", eremark=" + eremark + "]";
	}
}

2.数据持久层MyempMapper

package cn.icloudit.house.mapper;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import cn.icloudit.house.domain.Myemp;

public interface MyempMapper {

	@Select("select * from myemp where ename = #{ename} and epsw = #{epsw}")
	public Myemp login(@Param("ename") String ename, @Param("epsw") String epsw);
}

3.业务逻辑层

package cn.icloudit.house.service;

import cn.icloudit.house.domain.Myemp;

public interface IMyEmpService {
	
	public Myemp login(Myemp myemp);
	
}

package cn.icloudit.house.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.icloudit.house.domain.Myemp;
import cn.icloudit.house.mapper.MyempMapper;
import cn.icloudit.house.service.IMyEmpService;

@Service
public class MyEmpServiceImpl implements IMyEmpService{
	
	@Autowired
	private MyempMapper myempMapper;

	@Override
	public Myemp login(Myemp myemp) {
		return myempMapper.login(myemp.getEname(), myemp.getEpsw());
	}

}

4.控制层MyEmpController

package cn.icloudit.house.web.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import cn.icloudit.house.domain.Myemp;
import cn.icloudit.house.service.IMyEmpService;

@Controller
public class MyEmpController {
	
	@Autowired
	private IMyEmpService myempService;

	
	@RequestMapping("/login")
	@ResponseBody
	public Myemp login(Myemp emp, HttpSession session) {
		
		if (emp != null && emp.getEname() != null && emp.getEpsw() != null) {
			emp = myempService.login(emp);
			session.setAttribute("LOGIN_USER", emp);
		}
	
		return emp;
	}
	
	@RequestMapping("/login_success")
	public String login_success(String ename, String epsw, HttpSession session) {
		Myemp emp = (Myemp)session.getAttribute("LOGIN_USER");
		if(emp == null) {//未登录
			return "redirect:/index.jsp";
		}
		return "main/main";
	}
}

5.前端页面
加V:pingan-soft,获取,拿去,谢谢!

你可能感兴趣的:(实战代码,java核心技术,mybatis)