spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)

这是一篇myeclipse版的利用注解整合ssm实现登录的教程
大纲:1.数据库设计
           2.ssm搭建
           3.实现登录
          4.总结

一、数据库设计
设计数据库,建立一个数据库,名字这里我用pro,建立一张表users,该表一共有三个字段

spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第1张图片

二、ssm搭建
1.创建动态web项目
右击项目空白处--new--project

spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第2张图片
选择Dynamic Web Project,点击next,如果没有的话勾选下面的Show All Wizards,然后在上面搜索就可以找到了
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第3张图片
Project Name:项目名称,填写好后点finish
之后如果弹出一个框你不用管,点取消就行,如果点了也没事,就是视图切换而已,在右上角如图所示点击选择java就行
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第4张图片
2.导入jar包
我将jar包整理好定义了一个library,要用的时候导入可以了。
jar如下:
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第5张图片
3.搭建项目架构,如下所示(为了包分开建了一个实体类)
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第6张图片
4.编写ssm配置文件
4.1编写与数据库相关的jdbc.properties
在src根目录新建配置文件 jdbc.properties,内容如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/pro?useUnicode=true&characterEncoding=utf-8
username=root
password=root
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最大等待时间(毫秒)
maxWait=60000

4.2编写mybatis配置文件mybatis_config.xml,在src根目录下新建mybatis_config.xml内容如下:




4.3编写spring-mybatis.xml配置文件,在src根目录下新建spring-mybatis.xml,内容如下:



	
	
    
        
    
    
	
	
		
        
        
        
        
        
        
        
        
        
        
        
        
        
	
	
	
	
		
		
		
		
	
	
	
	
		
	
	
	
		
		
			
		
	
	
	
		
		
		
		
	
4.4编写springmvc-servlet.xml,在WEB-INF根目录下创建springmvc-servlet.xml ,内容如下:


    
    
    
	
    
    
    	
    	
    	
    
    
    

4.5日志属性log4j.properties,在src根目录创建 log4j.properties内容如下:
### direct log messages to stdout ###
log4j.rootLogger=warn, stdout, file
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=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file ssm1.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=ssm1.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

4.6编写web.xml,在WEB-INF下新建web.xml,内容如下:



	ssmdemo2
	
	
		contextConfigLocation
		
  		classpath:spring-mybatis.xml
  		
	
	
	
	
        log4jConfigLocation
        classpath:jdbc.properties
    
    
    
    
        log4jRefreshInterval
        10000
    
    
    
    
        webAppRootKey
        scheduleProject
    
    
	
	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			utf-8
		
	
	
	
		characterEncodingFilter
		/*
	

	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
    
        org.springframework.web.util.Log4jConfigListener
    
	
	
	
		springmvc
		org.springframework.web.servlet.DispatcherServlet
		1
	
	
	
		springmvc
		/
	
5.用mybatis-generator 代码自动生成工具自动生成dao、entity、mapping文件映射,具体有兴趣可以去百度,很简单
generator.xml
  
  
  
      
       
      
      
          
              
          
          
            
          
          
          
              
          
          
          
              
              
          
          
          
              
          
          
          
              
          
          
        spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第7张图片

接着将这些文件复制到项目路径里就可以了,要简单修改一下,如果不改的话可能映射文件里就把你自增的字段给insert进去了,当然没有注释的啦,自己加。
接着我们在web.controller新建个controller,如LoginController
package cn.syy.ssmdemo2.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value="/")
public class LoginController {
	@RequestMapping(value="/")
	@ResponseBody
	public String hello(){
		return "hello";
	}
}

然后将项目运行在tomcat,接着输入: http://localhost:8080/ssmdemo2/
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第8张图片
出现这样就代表搭建完成了。

三、实现登录

我的登录逻辑是这样的:根据用户名判断用户是否存在,再根据查到用户的密码与页面密码相比较。不多说上代码。
1.实体类
User.java
package cn.syy.ssmdemo2.entity;

public class User {
    private Integer id;

    private String username;

    private String password;

    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();
    }
}
2.dao层(为方便起见把多余的代码都删了)
UserMapper.java
package cn.syy.ssmdemo2.dao;

import cn.syy.ssmdemo2.entity.User;

public interface UserMapper {
	/**
	 * 根据username查数据
	 */
	User getByName(String username);
}

impl:UserMapperImpl.java


package cn.syy.ssmdemo2.dao.impl;

import javax.annotation.Resource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Repository;

import cn.syy.ssmdemo2.dao.UserMapper;
import cn.syy.ssmdemo2.entity.User;
@Repository
public class UserMapperImpl implements UserMapper {
	@Resource
	private SqlSessionFactory sqlSessionFactory;

	/**
	 * 根据username查User对象
	 */
	@Override
	public User getByName(String username) {
		User user = sqlSessionFactory.openSession()
				.selectOne("cn.syy.ssmdemo2.dao.UserMapper.getByName",username);
		return user;
	}
}
3.映射文件包mapping
UserMapper.xml




	
	
		
		
		
		
	
	
4.service层
ILoginService.java
package cn.syy.ssmdemo2.service;

import cn.syy.ssmdemo2.entity.User;

public interface ILoginService {
	/**
	 * 登录逻辑:根据用户名判断用户是否存在,再根据查到用户的密码与页面密码相比较
	 */
	User isLogin(String username,String password);
}
impl:ILoginServiceImpl.java
package cn.syy.ssmdemo2.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.syy.ssmdemo2.dao.UserMapper;
import cn.syy.ssmdemo2.entity.User;
import cn.syy.ssmdemo2.service.ILoginService;
@Service
public class ILoginServiceImpl implements ILoginService {
	@Resource
	private UserMapper userDao;

	/**
	 * 登录逻辑:根据用户名判断用户是否存在,再根据查到用户的密码与页面密码相比较
	 */
	@Override
	public User isLogin(String username,String password) {
		User user = userDao.getByName(username);
		if(user!=null){
			return password.equals(user.getPassword())?user:null;
		}
		return null;
	}

}
5.controller
修改LoginController
package cn.syy.ssmdemo2.web.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.syy.ssmdemo2.entity.User;
import cn.syy.ssmdemo2.service.ILoginService;

@Controller
@RequestMapping(value="login")
@Scope("prototype")
public class LoginController {
	@Resource
	private ILoginService loginService;
	/**
	 * 登录:判断登录是否成功,成功存入session,并打印成功信息,失败提示失败,并打印失败信息
	 */
	@RequestMapping(value="login")
	public String login(String username,String password,HttpServletRequest request){
		User user = loginService.isLogin(username, password);
		if(user!=null){
			System.out.println(username+"登录成功!");
			request.getSession().setAttribute("logined",user);
			return "login/success";
		}
		System.out.println(username+"登录失败");
		return "login/fail";
	}
}

结果如下:
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第9张图片
fail.jsp就一个“登录失败”,success.jsp就一个“登录成功”。
login.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录


用户名: 密码:

好了一切搞定,启动tomcat,浏览器输入: http://localhost:8080/ssmdemo2/jsp/login/login.jsp

事先写入数据表的内置用户:admin 密码:admin

后台:

spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第10张图片

直接回车,由于没有传username,查到user对象为null
spring、spring mvc、mybatis框架(ssm)整合实战,实现登录(myeclipse版)_第11张图片
好了,教程到此结束,现在你已经知道如何搭建ssm了,快去自己动手搭建一个吧。

四、总结:

搭建ssm步骤如下:
1.新建一个web项目
2.导入jar
3.搭建网站基本架构(dao、service、entity、controller、utils、mapping)
4. 编写与数据库相关的jdbc.properties
5.编写mybatis.xml配置文件
6.编写spring-mybatis.xml配置文件
7.在web/info下编写spingmvc-servlet.xml配置文件
8.编写日志属性log4j.properties
9.编写配置文件web.xml

实现登录步骤如下:
1.设计数据库
2.用代码自动生成工具 mybatis-generator
3.复制和修改文件
(2.3步也可以自己写,顺序:1.实体类--2.实体类映射--3.dao--4.daoimpl)
4.为dao增加方法
5.编写service
6.编写controller
7.编写页面

你可能感兴趣的:(ssm,java)