【中软实训】Day04:基于SSM框架的管理系统:简单实现增、删、改、查。

  • 说明:本文记录SSM框架下实现的增删改查操作。
  • 更多教程请点击查看:
  • 【中软实训】Day01:Java Web开发环境安装与配置&收获与感想
  • 【中软实训】Day02:JDBC数据库访问技术与MVC模型
  • 【中软实训】Day03:IDEA + Maven环境下的SSM框架整合

一、项目框架及模块间关系

1、项目框架

【中软实训】Day04:基于SSM框架的管理系统:简单实现增、删、改、查。_第1张图片

2、模块间关系简述

  • UserInfo:与数据库UserInfo表对应的实体类
  • UserController:控制页面跳转以及前端后台数据传递的类(控制层)
  • IUserDao:数据库和service之间的接口。在UserMapper.xml和IUserService接口之间传递数据
  • IUserService:持久层Dao和控制层Controller之间的接口
  • UserServiceImpl:实现接口IUserService的功能
  • UserMapper.xml:MyBatis的SQL语句执行模块
  • applicationContext.xml
  • db.properties:数据库的用户名、密码等JDBC操作值

二、项目源码(详细注释)

1、UserInfo.java:

package com.zhongruan.bean;

/**
 * 实体类,该类的文件和数据库的数据的表格的列一一对应
 */

public class UserInfo {

    private int id;
    private String username;
    private String password;

    public void setId(int id) {
        this.id = id;
    }

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

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

    public int getId() {
        return id;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

2、IUserDao.java:

package com.zhongruan.dao;

import com.zhongruan.bean.UserInfo;

import java.util.List;

/**
 * 这是service和UserMapper.xml打交道的接口(桥梁)
 */

public interface IUserDao {

    /**
     * 查询所有用户功能
     * @return  用户信息列表
     */
    List findAll();

    /**
     * 添加用户操作
     * @param userInfo:用户信息集合?实例
     * @return  :添加成功与否
     */
    boolean addUser(UserInfo userInfo);

    /**
     * 删除指定用户
     * @param id:要删除的用户的ID
     * @return  :删除成功与否
     */
    boolean deleteUserById(int id);

    /**
     * 更新用户信息
     * @param userInfo:新的用户信息
     * @return  :更新成功与否
     */
    boolean updateUser(UserInfo userInfo);

    /**
     * 获取指定ID的用户信息
     * @param id:用户的ID
     * @return  :用户信息UserInfo的实例
     */
    UserInfo queryById(int id);
}

3、UserMapper.xml:








    
    

    
    
        INSERT INTO userinfo(username,password) VALUE (#{username},#{password})
    

    
        DELETE FROM userinfo WHERE id=#{id}
    

    
        UPDATE userinfo SET username=#{username},password=#{password} where id=#{id}
    

    

4、IUserService.java:

package com.zhongruan.service;

import com.zhongruan.bean.UserInfo;

import java.util.List;

/**
 *  这个是Dao和Controller之间的接口
 */
public interface IUserService {

    /**
     * 下面的5个方法和IUserDao相同
     */

    List findAll();

    boolean addUser(UserInfo userInfo);

    boolean deleteUserById(int id);

    boolean updateUser(UserInfo userInfo);

    UserInfo queryById(int id);

}

5、UserServiceImpl.java:

package com.zhongruan.service.impl;

import com.zhongruan.bean.UserInfo;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 接口的具体实现类
 */

//把service放到Spring
@Service
public class UserServiceImpl implements IUserService {

    //从Spring注入IUserDao
    @Autowired
    IUserDao userDao;

    @Override
    public List findAll() {
        return userDao.findAll();
    }

    @Override
    public boolean addUser(UserInfo userInfo) {
        return userDao.addUser(userInfo);
    }

    @Override
    public boolean deleteUserById(int id) {
        return userDao.deleteUserById(id);
    }

    @Override
    public boolean updateUser(UserInfo userInfo) {
        return userDao.updateUser(userInfo);
    }

    @Override
    public UserInfo queryById(int id) {
        return userDao.queryById(id);
    }

}

6、UserController.java:

package com.zhongruan.controller;

import com.zhongruan.bean.UserInfo;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

/**
 * 接口类:控制层,控制页面跳转以及数据的传递
 */
//将Controller放入Spring
@Controller
@RequestMapping("user")
public class UserController {

    /**
     * 从Spring注入
     */
    @Autowired
    private IUserService userService;

    @RequestMapping("/findAll.do")                          //相应前端的findAll.do事件(index页面的超链接)
    public ModelAndView findAll(){
        List userInfos = userService.findAll();   //将所有用户的信息的查询结果保存到list中
        ModelAndView mv = new ModelAndView();               //定义ModelAndView的对象
        mv.addObject("ui",userInfos);           //通过addAttribute,往前端传递数据:List
        mv.setViewName("allUser");                          //设置跳转页面:allUser.jsp
        return mv;                                          //执行跳转页面,跳转至alluser.jsp
    }

    @RequestMapping("toAddUser.do")     //响应前端的toAddUser.do事件
    public String toAddUser(){
        return "addUser";               //事件所跳转的jsp页面:addUser.jsp
    }

    @RequestMapping("save.do")              //响应前端save.do事件
    public String save(UserInfo userInfo){  //传递的是userInfo
        userService.addUser(userInfo);      //执行保存操作
        return "redirect:/user/findAll.do"; //操作结束,重定向操作:执行findAll.do
    }

    @RequestMapping("delete.do")                    //响应前端的delete.do事件
    public String delete(@RequestParam int id){     //Get方法传递参数。获取传递的id
        userService.deleteUserById(id);             //执行删除用户操作
        return "redirect:/user/findAll.do";         //重定向
    }

    @RequestMapping("toUpdate.do")                                     //响应前端toUpdate.do事件
    public String toUpdate(Model model,@RequestParam int id){          //同上
        model.addAttribute("userInfo",userService.queryById(id));   //通过addAttribute方法传递UserInfo至前端
        return "updateUser";                                           //跳转至updateUser.jsp页面
    }

   @RequestMapping("update.do")                 //响应按钮update.do事件
   public String update(UserInfo userInfo){     //
        userService.updateUser(userInfo);       //执行操作
        return "redirect:/user/findAll.do";     //重定向页面
   }

}

7、index.jsp:

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


    首页
    



Hello World!

点击进入管理页面

8、allUser.jsp:

<%@ 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" %>



    user列表
    
    
    


id 用户名 密码 操作
${userInfo.id} ${userInfo.username} ${userInfo.password} 更改 | 删除

9、addUser.jsp:

<%@ 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" %>



    新增用户
    
    
    


用户姓名:


用户密码:


10、updateUser.jsp:

<%@ 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" %>


    修改论文
    
    
    


用户姓名: 用户密码:

11、更多文件源码见后文!

 

三、运行结果截图

 1、查询:

【中软实训】Day04:基于SSM框架的管理系统:简单实现增、删、改、查。_第2张图片

2、添加:

【中软实训】Day04:基于SSM框架的管理系统:简单实现增、删、改、查。_第3张图片

3、删除:

【中软实训】Day04:基于SSM框架的管理系统:简单实现增、删、改、查。_第4张图片

4、修改:

【中软实训】Day04:基于SSM框架的管理系统:简单实现增、删、改、查。_第5张图片

四、附:其他文件源码

1、pom.xml:




  4.0.0

  com.zhongruan
  ssmday0628
  1.0-SNAPSHOT
  war

  ssmday0628 Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.8
    1.8
    
    5.0.2.RELEASE
    
    3.2.6
    
    1.7.7
    1.2.17
    0.9.5.2
    1.1.2
  

  
    
    
      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.30
    
    
    
      commons-dbcp
      commons-dbcp
      1.2.2
    
    
    
      jstl
      jstl
      1.2
    
    
    
    
      log4j
      log4j
      ${log4j.version}
    


    
    
      com.mchange
      c3p0
      ${c3p0.version}
    

    
      taglibs
      standard
      ${taglibs.version}
    

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

    
    
      javax.servlet
      javax.servlet-api
      3.1.0
      provided
    
    
    
      javax.servlet.jsp
      javax.servlet.jsp-api
      2.3.1
      provided
    

  

  
    ssmday0628
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  

2、applicationContext.xml:



    
    

    
    
        
        
        
        
        
        
    

    
    
        
        
        
        

        
        

    

    
    
    
        
        
        
        
    



    
    


    
    
    
        
    
    
    

3、db.properties:数据库连接密码等

#以下内容根据自己来配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/你的数据库名?useSSL=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

4、log4j.properties:日志

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

5、spring-mvc.xml:




    
    

    
    
    

    
    
        
        
    

 

至此,基于SSM框架的管理系统:简单实现增、删、改、查结束。

 

未完待续……

你可能感兴趣的:(中软实训,Web技术)