SSM信息管理系统示例


SSM信息管理系统示例

1.项目结构

SSMDemo/
├── SSMDemo.iml
├── pom.xml
└── src
    └── main
        ├── java
        │   └── cn
        │       └── edu
        │           ├── data
        │           │   ├── Student.java
        │           │   ├── StudentController.java
        │           │   ├── StudentMapper.java
        │           │   ├── User.java
        │           │   └── UserMapper.java
        │           └── springmvc
        │               └── login
        │                   └── UserController.java
        └── webapp
            ├── WEB-INF
            │   ├── classes
            │   │   ├── log4j.properties
            │   │   ├── mybatis-config.xml
            │   │   └── springmvc.xml
            │   ├── view
            │   │   ├── error.jsp
            │   │   └── showStudentList.jsp
            │   └── web.xml
            └── index.jsp

2. 代码

2.1 Student

package cn.edu.data;


public class Student {
    private int ID; // 编号
    private String studentID; // 学号
    private String name; // 姓名
    private String aclass; // 班级


    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public String getStudentID() {
        return studentID;
    }

    public void setStudentID(String studentID) {
        this.studentID = studentID;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAclass() {
        return aclass;
    }

    public void setAclass(String aclass) {
        this.aclass = aclass;
    }

    public Student(int ID, String studentID, String name, String aclass) {
        this.ID = ID;
        this.studentID = studentID;
        this.name = name;
        this.aclass = aclass;
    }

    public Student() {
    }
}

2.2 StudentController

package cn.edu.data;

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 java.util.List;


@Controller // 控制器注解
@RequestMapping("/student") // 类中的请求映射注解
public class StudentController { // 控制器类
    //自动装配Mybatis Student映射器
    @Autowired
    StudentMapper studentmapper;


    //查询全部学生
    @RequestMapping("/selectall")
    public String select(Model model) {
        List student_list = studentmapper.selectAll();
        model.addAttribute("student_list", student_list);
        return "showStudentList";
    }

    //插入一条记录的录入视图
    @RequestMapping("/addStudent")
    public String addUser() {
        return "AddStudent";
    }

    //插入一条记录
    @RequestMapping("/insert")
    public String insert(Student student) {
        studentmapper.insert(student);
        return "redirect:/student/selectall"; //通过重定向到selectall
    }

    //@RequestMapping("/delete/{studentID}")
    @RequestMapping("/delete")
    //public String delete(@PathVariable("studentID") String id) {
    public String delete(Student student) {
        studentmapper.delete(student.getStudentID());
        return "redirect:/student/selectall"; //通过重定向到selectall
    }

    @RequestMapping("/update")
    public String update(Student student) {
        studentmapper.update(student);
        return "redirect:/student/selectall"; //通过重定向到selectall
    }
}

2.3 StudentMapper

package cn.edu.data;

import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;


@Repository
public interface StudentMapper {

    @Select("select id,studentID, name, class as aclass  from student where ID = #{ID}")
    Student selectOne(String studentID);
    @Select("select id,studentID, name, class as aclass from student")
    List selectAll();
    @Insert("insert into student (studentID,name,class) values (#{studentID},#{name},#{aclass})")
    int insert(Student student);
    @Delete("delete from student where  studentID = #{studentID}")
    int delete(String studentID);
    @Update("update student set studentID=#{studentID},name=#{name},class=#{aclass} where studentID=#{studentID}")
    int update(Student student);
}

2.4 User

package cn.edu.data;
public class User{
	private int id;
	private String name;
	private String password;
	
	public String getPassword() {
		return password;
	}

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

	public User(){}
	
	public User(int id,String name){
		this.setId(id);
		this.setName(name);
	}
	
	public int getId(){
		return this.id;
	}
	public void setId(int id){
		this.id = id;
	}
	
	public String getName(){
		return this.name;
	}
	
	public void setName(String name){
		this.name = name;
	}
}

2.5 UserMapper

package cn.edu.data;

import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper {

 @Select("select * from User where name=#{name}")
 User selectOne(String name);

 @Select("select * from User")
 List selectAll();

 @Insert("insert into user (name,password) values (#{name},#{password})")
 void insert(User user);

 @Delete("delete from user where id = #{id}")
 void delete(int id);

 @Update("update user set name=#{name},password=#{password} where id=#{id} ")
 void update(User user);

 }

2.6 UserController

package cn.edu.springmvc.login;
import java.util.List;

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.servlet.ModelAndView;
import cn.edu.data.*;

@Controller // 控制器注解
@RequestMapping("/login") // 类中的请求映射注解
public class UserController{ // 控制器类

	//自动装配Mybatis User映射器
	@Autowired
	UserMapper usermapper;

	@RequestMapping("/check")
	public String  hello(User user, Model model){
		// 视图模型对象初始化
		ModelAndView modelAndView = new ModelAndView();

		User user_test= (User)usermapper.selectOne(user.getName());

		if(user_test.getPassword().equals(user.getPassword()))
		{
			modelAndView.addObject(user);
			return "redirect:/student/selectall";
		}
		else
		{
			model.addAttribute("msg", "登录密码或用户名错误!!");
			return "error";
		}
	}

	//查询全部用户
	@RequestMapping("/selectall")
	public String  select(Model model){
		//ModelAndView modelAndView = new ModelAndView();
		List user_list = (List)usermapper.selectAll();
		/*for(User user:user_list)
			System.out.println(user.getId()+" "+user.getName()+" "+user.getPassword());*/
		model.addAttribute("user_list",user_list);
		return "showList";
	}

	//插入一条记录的录入视图
	@RequestMapping("/adduser")
	public String addUser() {
		return "AddUser";
	}

	//插入一条记录
	@RequestMapping("/insert")
    public String insert(User user) {
		usermapper.insert(user);
		return "hello";
	}

	@RequestMapping("/delete")
    public String delete(User user) {
		usermapper.delete(user.getId());
		return "hello";
	}

	@RequestMapping("/update")
    public String update(User user) {
		usermapper.update(user);
		return "hello";
	}

}

3. 配置文件

log4j

#//注意这里不要用INFO,DEBUG等 改个名字
log4j.rootLogger=infoA,errorA,stdout,DEBUGA

#过滤掉spring框架下的额外日志
log4j.category.org.springframework = WARN

#输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Threshold = debug
log4j.appender.stdout.layout.ConversionPattern=%d %-5p %c{1}:%L - %m%n

#输出error到指定文件
log4j.logger.errorA=error
log4j.appender.errorA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorA.layout=org.apache.log4j.PatternLayout
log4j.appender.errorA.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.errorA.datePattern=yyyy-MM-dd'.log'
log4j.appender.errorA.Threshold = error
log4j.appender.errorA.append=true
log4j.appender.error.File=d:/log/error.log

#输出DEBUG信息到指定文件
log4j.logger.DEBUGA=DEBUG
log4j.appender.DEBUGA=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUGA.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUGA.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUGA.datePattern=yyyy-MM-dd'.log'
log4j.appender.DEBUGA.Threshold = DEBUG
log4j.appender.DEBUGA.append=true
log4j.appender.DEBUGA.File=d:/log/debug_log.log

#打印sql语句
log4j.logger.com.ibatis=DEBUG
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

mybatis

<?xml version="1.0" encoding="UTF-8" ?>










  





springmvc

<?xml version="1.0" encoding="UTF-8"?>



    
    

    

    
    
         
         
    


    
 
 
 
 
 



  

	


    

    





4. 前端页面

error

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









SSM Demo

SSM框架的学生信息管理系统

演示SSM框架的使用方法

错误信息: ${msg}

showStudentList

<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@page import="cn.edu.data.User"%>
<%@page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"  isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    
    





SSM Demo

SSM框架的学生信息管理系统

演示SSM框架的使用方法

学号姓名班级
${person.studentID}${person.name}${person.aclass}


<%----%>


index

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









SSM Demo

SSM框架的学生信息管理系统

演示SSM框架的使用方法

登录界面

用户登录





web.xml

<?xml version="1.0" encoding="UTF-8"?>


Archetype Created Web Application

    
        org.springframework.web.context.ContextLoaderListener
    
   
        contextConfigLocation
        classpath*:springmvc.xml
    



    
  
	dispatcherServlet
	org.springframework.web.servlet.DispatcherServlet
	
		contextConfigLocation
		
	
	1


	dispatcherServlet
	/


    
    
        log4jConfigLocation
        classpath:log4j.properties
    



pom

<?xml version="1.0" encoding="UTF-8"?>

  4.0.0
  cn.edu.sd
  SSMDemo
  war
  1.0-SNAPSHOT
  SSMDemo Maven Webapp
  http://maven.apache.org


 UTF-8
 UTF-8
 UTF-8
 1.8
 1.8
 1.8
 5.3.12






    org.springframework
    spring-core
    ${spring.version}




    org.springframework
    spring-webmvc
     ${spring.version}



    org.springframework
    spring-orm
     ${spring.version}



	
		org.mybatis
		mybatis
		3.5.7
	

	
	
		org.mybatis
		mybatis-spring
		2.0.6
	

	
	
		org.apache.commons
		commons-dbcp2
		2.9.0
	




            javax.servlet
            javax.servlet-api
            4.0.1
            provided



   
      junit
      junit
      4.12
      test
    



  org.thymeleaf
  thymeleaf
  3.0.12.RELEASE
  




    javax.servlet
    jstl
    1.2





            log4j
            log4j
            1.2.17


    
    
        org.slf4j
        slf4j-log4j12
        1.7.25
    


    com.h2database
    h2
    1.4.197
    runtime
    



 
    mysql
    mysql-connector-java
    8.0.27
    
    runtime




    org.xerial
    sqlite-jdbc
    3.36.0.3
    runtime












 

 
org.apache.maven.plugins
maven-compiler-plugin
2.3.2

1.8
1.8
UTF-8



      
        org.apache.maven.plugins
        maven-war-plugin
        3.3.2
        
          
            
              true
            
          
        
      
      
        org.eclipse.jetty
        jetty-maven-plugin
	 9.4.15.v20190215

        
          10
          
            80
          
         
        
      
      
                    maven-resources-plugin
                    3.0.2
                    
                        
                            copy-xmls
                            process-sources
                            
                                copy-resources
                            
                            
                                ${basedir}/target/classes
                                
                                    
                                        ${basedir}/src/main/java/
                                        
                                            **/*.xml
                                        
                                    
									  
                                        ${basedir}/src/main/java/
                                        
                                            **/*.properties
                                        
                                    
                                
                            
                        
                    
                


     
         org.apache.tomcat.maven
         tomcat7-maven-plugin
         2.1
         
             80
             /
         
     

    
  


5. 运行

数据库

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.5.40 : Database - javaee_database
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`javaee_database` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `javaee_database`;

/*Table structure for table `student` */

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `studentID` varchar(100) DEFAULT NULL,
  `name` varchar(100) DEFAULT NULL,
  `class` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

/*Data for the table `student` */

insert  into `student`(`ID`,`studentID`,`name`,`class`) values (2,'2019216582','二子','7'),(3,'2019216583','小明','2'),(5,'2019216581','瑞醉','12');

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `Name` varchar(100) NOT NULL,
  `Password` varchar(100) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

insert  into `user`(`ID`,`Name`,`Password`) values (9,'root','root'),(10,'ding3','ding'),(11,'ding1','ding'),(12,'ding2','ding');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

相关