ssm框架整合(一),讲解的真香,牛牛牛
**学习目标**
第1章 SSM系统架构设计
一、SSM层次模型
二、SSM中的三层架构
第2章 项目环境搭建
2.1 数据库准备
资料中提供的sql文件,直接导入。
页面静态资源:
2.2 SSM项目搭建
2.2.1 项目基本环境搭建
第一步:创建项目
我们采用maven来构建该项目。
选择web项目的脚手架。
设置GAV座标,大家可以设置为自己的座标,不一定要一样。
项目创建好后,进行相关的设置。
因为不同的电脑环境不同,所以需要检查自己的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
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 页面资源导入
从课件的资料中导入,注意目录位置。
第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,获取,拿去,谢谢!