SpringMVC+mybatis+maven+登录注册+增删改查

一.SpringMVC

MVC框架是由Model模型(JavaBean),View视图(Jsp) 和 Controller控制器(Servlet)构成。

其中每一部分的作用为:

  1. Model:承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门承载业务数据的,如Student、User等。而业务处理Bean则是指Service或Dao对象,专门用于处理用户提交请求的。
  2. View:为用户提供使用界面,与用户直接进行交互
  3. Controller:用于将用户请求转发给相应的Model进行处理,并将处理Model的计算结果向用户提供相应响应。

二.SpringMVC+mybatis各层关系

Controller层(springMVC)通过要调用Service层的接口来控制业务流程,负责url映射(action),控制界面跳转。
Service层(Spring)负责业务模块的逻辑应用设计。首先设计其接口,然后再实现他的实现类(Serviceimpl类)。
通过对Spring配置文件中配置其实现的关联,完成此步工作,我们 就可以通过调用Service的接口来进行业务处理。最后通过调用DAO层已定义的接口,去实现Service具体的实现类。
Dao层/Mapper层(Mybatis)负责与数据库进行交互设计,用来处理数据的持久化工作。DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,就可在其他模块中调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是哪个类,这里用到的就是反射机制, DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。
View层(视图层)负责前台jsp页面的展示。

二.项目简介

简单的用户管理项目:实现用户登录注册,以及对用户信息的增删改查功能。

SpringMVC+mybatis+maven+登录注册+增删改查_第1张图片                                     

                                                     项目流程图

SpringMVC+mybatis+maven+登录注册+增删改查_第2张图片

四.源码实现

文件目录

SpringMVC+mybatis+maven+登录注册+增删改查_第3张图片SpringMVC+mybatis+maven+登录注册+增删改查_第4张图片SpringMVC+mybatis+maven+登录注册+增删改查_第5张图片

JSP文件:

1.login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 




      
登录页面


2.registration.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>





      
修改用户信息页面


User Management

3.userList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>




Insert title here



User Management

用户账号 用户密码 联系方式 操作
${user.user_name } ${user.user_password } ${user.user_phonenum }
更新
删除

4.userEdit.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>





      
修改用户信息页面


User Management

5.error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




错误页面


错误页面

6.success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登陆成功


登陆成功

Controller层

7.Login.java

package com.javen.controller;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

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.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.javen.vo.UserVO;
import com.javen.model.User;
import com.javen.service.IuserInfoService;

@Controller
@RequestMapping("/user")
public class Login {
	
	@Autowired
	private IuserInfoService login;
	@RequestMapping("index")
	public String Index() {
		return "login";
	}
	
	@RequestMapping(value = "/userlogin")
	public String user(HttpServletRequest request, Model model, UserVO userVo) {
		System.err.println(userVo);
		User select = login.selectByName(userVo.getUsername());
		if(login.selectByAS(request.getParameter("username"), request.getParameter("password"))==1) {
			request.getSession().setAttribute("userId", select.getUser_id());// 写入session
			List selectAll = login.selectAll();
			model.addAttribute("userList", selectAll);
			return "userList";
		}else {
			return "error1";
		}
	}
	@RequestMapping("/select")
	public String select(HttpServletRequest request, Model model) {
		System.err.println(request.getParameter("selectbyname"));
		User a = login.selectByName(request.getParameter("selectbyname"));
		List select=new ArrayList();
		select.add(a);
		System.err.println("查询"+select);
			model.addAttribute("userList", select);
			return "userList";
	}
	
	@RequestMapping("/userList")
	public String userList(HttpServletRequest request, Model model, UserVO userVo) {
		Object attribute = request.getSession().getAttribute("userId");
		if (attribute != null) {
			List selectAll = login.selectAll();
			model.addAttribute("userList", selectAll);
			System.err.println(attribute.toString());
			return "userList";
		}else {
			return "user/index";
		}
	}
	
	@RequestMapping("/toUpdate")
	public String toUpdate(UserVO userVo, Model model) {
		System.err.println(userVo);
		User select = login.selectByName(userVo.getUsername());
		model.addAttribute("user", select);
		return "userEdit";

	}
	
	@RequestMapping("/update")
	public String update(UserVO userVO, Model model) {
		System.err.println(userVO);
		User user = login.selectByName(userVO.getUsername());
		//user.setUser_name(userVO.getUsername());//用户名不可修改,因为查询USER是按照用户名查找的
		user.setUser_password(userVO.getPassword());
		user.setUser_phonenum(userVO.getPhonenum());
		System.err.println(user);
		login.updateById(user);
		List selectAll = login.selectAll();
		model.addAttribute("userList", selectAll);
		if (true) {
			model.addAttribute("code", "200");
			model.addAttribute("msg", "成功");
			return "userList";
		} else {
			model.addAttribute("code", "500");
			model.addAttribute("msg", "ssss更失败了");
			return toUpdate(userVO, model);
		}
	}
	
	@RequestMapping("/delete")
	public String delete(UserVO userVO,Model model) {
		System.err.println(userVO.getUserid());
		login.deleteById(userVO.getUserid());
		List selectAll = login.selectAll();
		model.addAttribute("userList", selectAll);
		/*
		 * if (true) { responseVO.setCode(200); responseVO.setMsg("sssss成功"); return
		 * "user/userList"; } else { responseVO.setCode(500); responseVO.setMsg("失败");
		 * return "error1"; }
		 */
		return "userList";
	}
	
	@RequestMapping("/registration")
	public String registration() {
		return "registration";
	}
	
	@RequestMapping("/useradd")
	public String useradd(UserVO userVO,Model model) {
		System.err.println(userVO);
		User user=new User(userVO.getUsername(), userVO.getPassword(),"0",userVO.getPhonenum());
		login.insert(user);
		return "login";
	}


}

Dao层

8.UserMapping.java

package com.javen.dao;

import java.util.List;

import com.javen.model.User;

public interface UserMapper {
    int deleteByPrimaryKey(Integer user_id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer user_id);
    
    User selectByName(String user_name);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
    
    List selectAll();
    
	int selectByAS(String account, String password);
}

Mapping层

9.UserMapping.xml




  
    
    
    
    
    
  
  
  
    user_id, user_name, user_password, user_Identity, user_phonenum
  
  
  
  
    
  
  
  
   
  
  
    delete from user_information_copy1
    where user_id = #{user_id,jdbcType=INTEGER}
  
  
  
    insert into user_information_copy1 (user_name,user_password,user_Identity,user_phonenum)
    values (#{user_name,jdbcType=VARCHAR}, #{user_password,jdbcType=VARCHAR}, 
     #{user_Identity,jdbcType=VARCHAR}, #{user_phonenum,jdbcType=VARCHAR})
  
  
  
    insert into "user_information_copy1"
    
      
        user_id,
      
      
        user_name,
      
      
        user_password,
      
      
        user_Identity,
      
      
        user_phonenum,
      
    
    
      
        #{user_id,jdbcType=INTEGER},
      
      
        #{user_name,jdbcType=VARCHAR},
      
      
        #{user_password,jdbcType=VARCHAR},
      
      
        #{user_Identity,jdbcType=VARCHAR},
      
      
        #{user_phonenum,jdbcType=VARCHAR},
      
    
  
  
  
    update "user_information_copy1"
    
      
        user_name = #{user_name,jdbcType=VARCHAR},
      
      
        user_password = #{user_password,jdbcType=VARCHAR},
      
      
        user_Identity = #{user_Identity,jdbcType=VARCHAR},
      
      
        user_phonenum = #{user_phonenum,jdbcType=VARCHAR},
      
    
    where user_id = #{user_id,jdbcType=INTEGER}
  
  
  
    update "user_information_copy1"
    set user_name = #{user_name,jdbcType=VARCHAR},
      user_password = #{user_password,jdbcType=VARCHAR},
      user_phonenum = #{user_phonenum,jdbcType=VARCHAR}
    where user_name = #{user_name,jdbcType=VARCHAR}
  

    update user_information_copy1
    set user_name = #{user_name,jdbcType=VARCHAR},
        user_password = #{user_password,jdbcType=VARCHAR},
        user_Identity = #{user_Identity,jdbcType=VARCHAR},
        user_phonenum = #{user_phonenum,jdbcType=VARCHAR}
    where user_id = #{user_id,jdbcType=INTEGER}
  

model层(实体层)

10.User.java

package com.javen.model;

public class User {
    private Integer user_id;

    private String user_name;

    private String user_password;

    private String user_Identity;

    private String user_phonenum;

    public Integer getUser_id() {
        return user_id;
    }

    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }

    public User(String user_name, String user_password, String user_Identity, String user_phonenum) {
		super();
		this.user_name = user_name;
		this.user_password = user_password;
		this.user_Identity = user_Identity;
		this.user_phonenum = user_phonenum;
	}
    
    public User() {
    	
    }

	public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name == null ? null : user_name;
    }

    public String getUser_password() {
        return user_password;
    }

    public void setUser_password(String user_password) {
        this.user_password = user_password == null ? null : user_password.trim();
    }

    public String getUser_Identity() {
        return user_Identity;
    }

    public void setUser_Identity(String user_Identity) {
        this.user_Identity = user_Identity == null ? null : user_Identity.trim();
    }

    public String getUser_phonenum() {
        return user_phonenum;
    }

    public void setUser_phonenum(String user_phonenum) {
        this.user_phonenum = user_phonenum == null ? null : user_phonenum.trim();
    }

	@Override
	public String toString() {
		return "User [user_id=" + user_id + ", user_name=" + user_name + ", user_password=" + user_password
				+ ", user_Identity=" + user_Identity + ", user_phonenum=" + user_phonenum + "]";
	}
    
}

Service层

11.IuserInfoService.java

package com.javen.service;

import java.util.List;

import com.javen.model.User;

public interface IuserInfoService {
	int insert(User useradd);
    int insertSelective(User useradd);
    User selectById(Integer userid);
  User selectByName(String user_name);
    int deleteById(Integer userid);
    int updateById(User useradd);
    int selectByAS(String account,String password);
    List selectAll();
}

ServiceImpl层

12.IuserInfoServiceimpl

package com.javen.service.impl;

import java.util.List;

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

import com.javen.dao.UserMapper;
import com.javen.model.User;
import com.javen.service.IuserInfoService;
@Service()
public class IuserInfoServiceimpl implements IuserInfoService {
	@Autowired
    private UserMapper userdao;
	public int insert(User useradd) {
		// TODO Auto-generated method stub
		return this.userdao.insert(useradd);
	}
	public List selectAll() {
		return this.userdao.selectAll();
	}
    
	public int selectByAS(String account, String password) {
		if(userdao.selectByAS(account, password) == 1) {
			return 1;
		}
		else {
			return 0;
		}
	}
	
	public int insertSelective(User useradd) {
		// TODO Auto-generated method stub
		return this.userdao.insertSelective(useradd);
	}

	public User selectById(Integer userid) {
		// TODO Auto-generated method stub
		return this.userdao.selectByPrimaryKey(userid);
	}

	public int deleteById(Integer userid) {
		// TODO Auto-generated method stub
		return this.userdao.deleteByPrimaryKey(userid);
	}

	public int updateById(User user) {
		// TODO Auto-generated method stub
		System.err.println("222"+user);
		return this.userdao.updateByPrimaryKey(user);
	}
	
	public User selectByName(String user_name)
	{
		return this.userdao.selectByName(user_name);
	}
}

VO层(用来接收前台数据的实体类)

13.UserVO.java

package com.javen.vo;

import java.util.Date;

public class UserVO {
    private String username;

    private String password;
    
    private String phonenum;
    
    private Integer userid;

	public Integer getUserid() {
		return userid;
	}

	public void setUserid(Integer userid) {
		this.userid = userid;
	}

	public String getUsername() {
		return username;
	}

	public String getPhonenum() {
		return phonenum;
	}

	public void setPhonenum(String phonenum) {
		this.phonenum = phonenum;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "UserVO [username=" + username + ", password=" + password + ", phonenum=" + phonenum + ", userid="
				+ userid + "]";
	}




}

配置文件

14.web.xml



  Archetype Created Web Application
  
    contextConfigLocation
    classpath:spring-mybatis.xml
  
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    true
    
      encoding
      UTF-8
    
  
  
    encodingFilter
    /*
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
    org.springframework.web.util.IntrospectorCleanupListener
  
  
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
    true
  
  
    SpringMVC
    /
  
  
    /index.jsp
  
  maven02
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  

15.pom.xml


	4.0.0
	com.javen.maven02
	maven02
	war
	0.0.1-SNAPSHOT
	maven01 Maven Webapp
	http://maven.apache.org

	
		
		4.0.2.RELEASE
		
		3.2.6
		
		1.7.7
		1.2.17
	

	
		
			junit
			junit
			3.8.1
			
			test
		
		

		
		
			org.springframework
			spring-core
			${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-aop
			${spring.version}
		

		
			org.springframework
			spring-context-support
			${spring.version}
		

		
			org.springframework
			spring-test
			${spring.version}
		
		
		
			org.mybatis
			mybatis
			${mybatis.version}
		
		
		
			org.mybatis
			mybatis-spring
			1.2.2
		

		
		
			javax
			javaee-api
			7.0
		

		
		
			mysql
			mysql-connector-java
			5.1.36
		
		
		
			commons-dbcp
			commons-dbcp
			1.2.2
		

		
		
			jstl
			jstl
			1.2
		
		
		
		
			log4j
			log4j
			${log4j.version}
		


		
		
			com.alibaba
			fastjson
			1.1.41
		


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

		
			org.slf4j
			slf4j-log4j12
			${slf4j.version}
		
		
		
		
			org.codehaus.jackson
			jackson-mapper-asl
			1.9.13
		
		
		
			commons-fileupload
			commons-fileupload
			1.3.1
		
		
			commons-io
			commons-io
			2.4
		
		
			commons-codec
			commons-codec
			1.9
		
		
		
			org.mybatis.generator
			mybatis-generator-core
			1.3.2
		
	

	
		maven02
		
			
			


		
	


16.jdbc.properties

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

17.log4j.properties

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=[%c] - %m%n  
  
#文件大小到达指定尺寸的时候产生一个新的文件  
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  

18.spring-mvc.xml

  
  
      
      
    
    
    
    
    
      
      
          
              
                text/html;charset=UTF-8  
              
          
      
      
      
          
              
                   
              
          
      
      
      
        
          
            
          
            
          
            
        
        
       
    
    
    
    
        
            
                
                
                
                
            
        
        
            
                
                
            
        
        
    
    
     
      
          
          
          
      
  

19.spring-mybatis.xml

  
  
      
      
    
      
      
          
      
  
      
          
          
          
          
          
          
          
          
          
          
          
          
          
          
      
  
      
      
          
          
          
      
  
      
      
          
          
      
  
      
      
          
      
  
  

Mysql数据库

SpringMVC+mybatis+maven+登录注册+增删改查_第6张图片

 

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