spring+spring-mvc+mybatis框架的设备管理系统

开发软件工具版本:idea 2017+jdk1.8+Tomcat8.0+maven3.9+mysql8.0
框架 spring+spring mvc+mybatis
用了过滤器、拦截器、监听器
功能实现了用户登录,设备的增删改查

这里写图片描述

项目结构如图所示,框架包用maven下载,pom文件里配置
pom.xml

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

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <artifactId>first</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>first Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring.version>5.0.3.RELEASE</spring.version>
    <mybatis.version>3.4.4</mybatis.version>
  </properties>
  <dependencies>
    <!-- 单元测试 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- 第一部分:Spring 配置-->
    <!-- Spring core -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- Spring DAO -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- Spring mvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <!-- 第二部分:Servlet web -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.4</version>
    </dependency>
    <!-- 第三部分:数据库和mybatis -->
    <!-- 数据库 -->
    <!--<dependency>-->
      <!--<groupId>mysql</groupId>-->
      <!--<artifactId>mysql-connector-java</artifactId>-->
      <!--<version>5.1.39</version>-->
    <!--</dependency>-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.46</version>
    </dependency>
    <!-- 数据库连接池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
    <!--配置-->
    <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.5</version>
    </dependency>
    <!-- MyBatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>${mybatis.version}</version>
    </dependency>
    <!-- mybatis-spring整合包 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>
    <!-- 第四部分:日志 -->
    <!-- 实现slf4j接口并整合 -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.1.1</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>first</finalName>
    <plugins>
      <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
          <verbose>true</verbose>
          <overwrite>true</overwrite>
        </configuration>
        <executions>
          <execution>
            <id>Generate MyBatis Artifacts</id>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.5</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

代码生成配置文件
generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <properties  resource="jdbc.properties"/>
    <!--指定特定数据库的jdbc驱动jar包的位置 -->
    <classPathEntry location="${jdbc.driverLocation}"/>

    <context  id="mysqlTables"   targetRuntime="MyBatis3">
        <jdbcConnection  driverClass="${jdbc.driver}"
                         connectionURL="${jdbc.url}"  userId="${jdbc.username}"  password="${jdbc.password}"/>
        <!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
        <javaTypeResolver>
            <property name="forceBigDecimals"  value="false" />
        </javaTypeResolver>

        <!--自动生成的实体的存放包路径 -->
        <javaModelGenerator  targetPackage="com.dao"
                             targetProject="src/main/java">
            <property  name="enableSubPackages"  value="true"/>
            <property  name="trimStrings"  value="true"/>
        </javaModelGenerator>

        <!--自动生成的*Mapper.xml文件存放路径 -->
        <sqlMapGenerator  targetPackage="mapper"
                          targetProject="src/main/resources">
            <property  name="enableSubPackages"  value="true"/>
        </sqlMapGenerator>
        <!--自动生成的*Mapper.java存放路径 -->

        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.mapper"  targetProject="src/main/java">
            <property  name="enableSubPackages"  value="true"/>
        </javaClientGenerator>

        <table  tableName="test"  domainObjectName="Test"
                enableCountByExample="false"   enableUpdateByExample="false"
                enableDeleteByExample="false"  enableSelectByExample="false"
                selectByExampleQueryId="false">
            <generatedKey  column="ID"  sqlStatement="select uuid_short()"
                           identity="false"/>
        </table>
        <table  tableName="teacher"   domainObjectName="Teacher">
            <!--<generatedKey  column="ID"  sqlStatement="select uuid_short()"   identity="false"/>-->
        </table>
    </context>
</generatorConfiguration>

控制层
controller
用户登录的控制器
UserController

package com.controller;

import com.pojo.User;

import java.io.IOException;
import java.util.List;

import com.service.UserService;
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.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/user")
@SessionAttributes("isAdmin")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/error")
    public String login()
    {
        return "error";
    }
    @RequestMapping("/toSystem")
    public String toSystem()
    {
        return "toLogin";
    }
    @RequestMapping("/allUser")
    public String list(Model model) {
        List<User> list = userService.queryAllUser();
        model.addAttribute("list", list);
        return "allUser";
    }
    @RequestMapping("/login")
    public String login1()
    {
        return "login";
    }
    //判断用户密码是否正确

     @RequestMapping("/judgeUser")

     //@RequestMapping(value="/login",method=RequestMethod.POST)
     public String login(@RequestParam("account") String userName,
                         @RequestParam("password") String password,
                         Model model, HttpServletRequest request) throws Exception {
         //HttpServletRequest request=new HttpServletRequest();
         User user=userService.checkLogin(userName,password);
         user.getUsername();
         if(user!=null){
             //创建session对象
             HttpSession session = request.getSession(false);
             System.out.println("创建  .................. ");
             //把用户数据保存在session域对象中
             session.setAttribute("loginUser", user);
             model.addAttribute(user);
             System.out.println("存进session");
             return "redirect:/device/allDevice";//
         }
         return "error";
     }
     @RequestMapping("/logoff")
     public String logoff(HttpServletRequest request,HttpServletResponse response)
             throws ServletException, IOException {
         HttpSession session = request.getSession(false);//防止创建Session
         if(session == null){
             response.sendRedirect("/index.jsp");
             return "";
         }
         User user= (User)(session.getAttribute("loginUser"));
         //移除了用户登录的信息
         session.removeAttribute("loginUser");
         if(session.getAttribute("loginUser") == null){
            System.out.println("session用户" + "为空");
         }
         System.out.println("loginUser:"+session.getAttribute("loginUser"));
         //response.sendRedirect("login1");
         session.invalidate();
         System.out.println("销毁session");
         return "toLogin";
     }

    @RequestMapping("toAddUser")
    public String toAddUser() {
        return "addUser";
    }
}

设备管理的控制器
DeviceController

package com.controller;

/**
 * Created by zhangpan17 on 2018/8/15.
 */
import com.pojo.Device;
import com.pojo.User;
import com.service.DeviceService;

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

import javax.servlet.http.HttpServletRequest;

@Controller
@RequestMapping("/device")
public class DeviceController {
    @Autowired
    private DeviceService deviceService;


    @RequestMapping("/allDevice")
    public String list(Model model,HttpServletRequest request) {
        long status=((User)request.getSession().getAttribute("loginUser")).getUserStatus();
        List<Device> list = deviceService.queryAllDevice(status);
        model.addAttribute("list", list);
        return "allDevice";
    }

    @RequestMapping("toAddDevice")
    public String toAddPaper() {
        return "addDevice";
    }

    @RequestMapping("/addDevice")
    public String addPaper(Device device) {
        deviceService.addDevice(device);
        return "redirect:/device/allDevice";
        //return "allPaper";
    }

    @RequestMapping("/del/{paperId}")
    public String deletePaper(@PathVariable("paperId") Long id) {
        deviceService.deleteDeviceById(id);
        return "redirect:/device/allDevice";
    }

    @RequestMapping("toUpdateDevice")
    public String toUpdatePaper(Model model, Long id) {
        model.addAttribute("device", deviceService.queryById(id));
        return "updateDevice";
    }

    @RequestMapping("/updateDevice")
    public String updatePaper(Model model, Device device) {
        //System.out.println("要删除的id"+device.getPaperId());
        deviceService.updateDevice(device);
        device = deviceService.queryById(device.getDeviceId());
        model.addAttribute("device", device);
        return "redirect:/device/allDevice";
    }
}

不会前端啊,所以只是简单的实现一下功能而已,路过的大佬见谅
运行结果:
登录界面
这里写图片描述

管理界面:

这里写图片描述

源代码太多、不一一说了

源代码下载链接
https://download.csdn.net/download/weixin_42994592/10643090

猜你喜欢

转载自blog.csdn.net/weixin_42994592/article/details/82352975