Proyecto de graduación Sistema de gestión de materiales de rescate de emergencia SpringBoot+Vue con separación frontal y posterior

tecnología de desarrollo de sistemas

lenguaje java

Java utiliza principalmente la tecnología CORBA y el modelo de seguridad para proteger los datos en las aplicaciones de Internet. También proporciona soporte completo para tecnologías EJB (Enterprise JavaBeans),
API de servlet Java, Java (
páginas del servidor Java) y XML. Java es un lenguaje de programación de computadoras con tres características principales: encapsulación, herencia y polimorfismo, y se usa ampliamente en el desarrollo de aplicaciones web de mensajería y aplicaciones móviles. La diferencia entre el lenguaje Java y los compiladores generales y las traducciones literales es que Java primero convierte el código fuente en código de bytes y luego lo convierte en un archivo ejecutable para la JVM, que puede ejecutarse en una variedad de JVM diferentes. Se consigue por tanto su carácter multiplataforma. Si bien esto hizo que Java fuera muy lento en sus inicios, ha mejorado a medida que Java se desarrolló.

Arquitectura B/S

El sistema B/S se puede utilizar a través de una computadora con acceso a Internet. Su mayor ventaja es que no requiere la instalación de software especial. Primero, el navegador envía una solicitud al servidor, luego el servidor procesa la solicitud y devuelve la información al navegador. No es necesario volver a acceder y calcular los datos, solo necesita encargarse de mostrar los datos para reducir los requisitos. Si el cliente es como una "persona flaca", el servidor se volverá cada vez más "gordo". En comparación con la arquitectura C/S, la mayor diferencia entre la arquitectura B/S y la arquitectura C/S es que el software de aplicación del sistema B/S utiliza un navegador web como plataforma para interactuar con los usuarios, mientras que C/S requiere el desarrollo de aplicaciones dedicadas.
Insertar descripción de la imagen aquí

Marco SpringBoot

SpringBoot es un nuevo marco ligero de código abierto. Diseñado en base a Spring 4.0, no solo hereda las excelentes características originales del marco Spring, sino que también simplifica aún más todo el proceso de construcción y desarrollo de aplicaciones Spring al simplificar los archivos de configuración. Además, en el Spring original, a medida que el número de paquetes jar importados aumentaba con la expansión del proyecto, surgían problemas de compatibilidad entre las versiones del paquete jar. En este momento, SpringBoot integró una gran cantidad de marcos para generar conflictos entre las versiones del paquete dependiente. y los problemas de inestabilidad de referencia están bien resueltos.
SpringBoot puede considerarse como una versión mejorada de Spring, pero en esencia todas son tecnologías relacionadas con Spring. Con estos excelentes marcos de código abierto, los programadores obtendrán el doble de resultado con la mitad del esfuerzo durante el proceso de desarrollo.

base de datos mysql

El lenguaje de Mysql no está estructurado y los mensajeros y los estudiantes pueden trabajar con datos. MySQL ha atraído mucha atención por su velocidad, confiabilidad y adaptabilidad. La mayoría de la gente está de acuerdo en que MySQL es la mejor opción para gestionar contenido sin procesamiento transaccional. Y debido a que el lenguaje y la estructura de Mysql son relativamente simples, pero sus funciones y la cantidad de información almacenada son muy poderosas, se ha utilizado ampliamente.
El papel de la base de datos Mysql en el proceso de programación es muy extenso, lo que brinda comodidad a los mensajeros y estudiantes para la consulta de datos. La aplicación de la base de datos Mysql es muy flexible y potente, por lo que sólo se necesita un pequeño fragmento de código para implementar una determinada función, a diferencia de otros programas que requieren escribir grandes fragmentos de código. En términos generales, el lenguaje de la base de datos Mysql es relativamente más simple.
El análisis de procesos de datos es principalmente un depósito de almacenamiento de datos, que se realiza en una computadora en lugar de en un depósito de la vida real. Los datos se almacenan en un formato fijo, no de manera desordenada, la definición es: tienen un formato fijo durante mucho tiempo y se pueden almacenar en la memoria compartida de la computadora. La gestión de bases de datos incluye principalmente el almacenamiento, modificación y adición de datos, y el establecimiento de tablas de datos. Para garantizar el funcionamiento normal de los datos del sistema, algunos procesadores capaces pueden gestionarlos sin necesidad de que lo manejen profesionales. El establecimiento de la tabla de datos puede ajustar los datos en la tabla de datos, recombinarlos y reconstruirlos para garantizar la seguridad de los datos. Debido a las potentes funciones de la base de datos, el desarrollo de este sistema utiliza principalmente Mysql para la gestión de datos.

análisis del sistema

Análisis de procesos del sistema.

Diagrama de flujo de inicio de sesión del sistema, como se muestra en la figura:
Insertar descripción de la imagen aquí
Agregar diagrama de flujo de información, como se muestra en la figura:
Insertar descripción de la imagen aquí
Eliminar diagrama de flujo de información, como se muestra en la figura:
Insertar descripción de la imagen aquí

Captura de pantalla de función

Página de registro de inicio de sesión

Página de inicio de sesión del sistema
Insertar descripción de la imagen aquí
Página de registro del sistema
Insertar descripción de la imagen aquí

Módulo de funciones de administrador

Lo primero que aparece es la página de inicio después de que el administrador inicia sesión.
Insertar descripción de la imagen aquí
En el centro personal podemos modificar nuestra contraseña y ver nuestra información personal.
Insertar descripción de la imagen aquí
En la gestión de información de anuncios podemos ver el título, tipo, imagen, lanzamiento. fecha, etc. de la información del anuncio. información y podemos eliminar, modificar y otras operaciones en la información correspondiente.
Insertar descripción de la imagen aquí
En la página de administración de usuarios, podemos ver el nombre de usuario del usuario, el nombre y otra información relacionada, y podemos modificar, eliminar y otras operaciones en la información del usuario.
Insertar descripción de la imagen aquí
En la página de administración de materiales, podemos Puede ver el nombre, la imagen y otra información relacionada de los materiales, y puede eliminar, modificar y exportar la información del material. En el almacenamiento de
Insertar descripción de la imagen aquí
materiales página de administración, podemos ver el número de almacén, el nombre, la clasificación y otra información de los materiales, y puede realizar operaciones relacionadas
Insertar descripción de la imagen aquí
en En la página de solicitud de material, podemos ver la información del material que el usuario solicitó y podemos realizar las operaciones correspondientes.
Insertar descripción de la imagen aquí
En la página de gestión de salida de material, podemos ver el número del usuario y otra información relacionada y podemos realizar las operaciones correspondientes.
Insertar descripción de la imagen aquí

Código relacionado

Configuración de base de datos

# Tomcat
server:
    tomcat:
        uri-encoding: UTF-8
    port: 8080
    servlet:
        context-path: /springbootr1tjf

spring:
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
        username: root
        password: 123456

#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootr1tjf
#        username: sa
#        password: 123456

    servlet:
      multipart:
        max-file-size: 10MB
        max-request-size: 10MB
    resources:
      static-locations: classpath:static/,file:static/

#mybatis
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.entity
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 1
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: true
    #刷新mapper 调试神器
    refresh-mapper: true
    #逻辑删除配置
    logic-delete-value: -1
    logic-not-delete-value: 0
    #自定义SQL注入器
    sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true
    #springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
    jdbc-type-for-null: 'null' 

Controlador



    package com.controller;


    import java.util.Arrays;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.annotation.IgnoreAuth;
    import com.baomidou.mybatisplus.mapper.EntityWrapper;
    import com.entity.TokenEntity;
    import com.entity.UserEntity;
    import com.service.TokenService;
    import com.service.UserService;
    import com.utils.CommonUtil;
    import com.utils.MPUtil;
    import com.utils.PageUtils;
    import com.utils.R;
    import com.utils.ValidatorUtils;
    
    /**
     * 登录相关
     */
    @RequestMapping("users")
    @RestController
    public class UserController{
    
    
    	
    	@Autowired
    	private UserService userService;
    	
    	@Autowired
    	private TokenService tokenService;
    
    	/**
    	 * 登录
    	 */
    	@IgnoreAuth
    	@PostMapping(value = "/login")
    	public R login(String username, String password, String captcha, HttpServletRequest request) {
    
    
    		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    		if(user==null || !user.getPassword().equals(password)) {
    
    
    			return R.error("账号或密码不正确");
    		}
    		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    		return R.ok().put("token", token);
    	}
    	
    	/**
    	 * 注册
    	 */
    	@IgnoreAuth
    	@PostMapping(value = "/register")
    	public R register(@RequestBody UserEntity user){
    
    
    //    	ValidatorUtils.validateEntity(user);
        	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    
    
        		return R.error("用户已存在");
        	}
            userService.insert(user);
            return R.ok();
        }
    
    	/**
    	 * 退出
    	 */
    	@GetMapping(value = "logout")
    	public R logout(HttpServletRequest request) {
    
    
    		request.getSession().invalidate();
    		return R.ok("退出成功");
    	}
    	
    	/**
         * 密码重置
         */
        @IgnoreAuth
    	@RequestMapping(value = "/resetPass")
        public R resetPass(String username, HttpServletRequest request){
    
    
        	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
        	if(user==null) {
    
    
        		return R.error("账号不存在");
        	}
        	user.setPassword("123456");
            userService.update(user,null);
            return R.ok("密码已重置为:123456");
        }
    	
    	/**
         * 列表
         */
        @RequestMapping("/page")
        public R page(@RequestParam Map<String, Object> params,UserEntity user){
    
    
            EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
        	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
            return R.ok().put("data", page);
        }
    
    	/**
         * 列表
         */
        @RequestMapping("/list")
        public R list( UserEntity user){
    
    
           	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
          	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
            return R.ok().put("data", userService.selectListView(ew));
        }
    
        /**
         * 信息
         */
        @RequestMapping("/info/{id}")
        public R info(@PathVariable("id") String id){
    
    
            UserEntity user = userService.selectById(id);
            return R.ok().put("data", user);
        }
        
        /**
         * 获取用户的session用户信息
         */
        @RequestMapping("/session")
        public R getCurrUser(HttpServletRequest request){
    
    
        	Long id = (Long)request.getSession().getAttribute("userId");
            UserEntity user = userService.selectById(id);
            return R.ok().put("data", user);
        }
    
        /**
         * 保存
         */
        @PostMapping("/save")
        public R save(@RequestBody UserEntity user){
    
    
    //    	ValidatorUtils.validateEntity(user);
        	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    
    
        		return R.error("用户已存在");
        	}
            userService.insert(user);
            return R.ok();
        }
    
        /**
         * 修改
         */
        @RequestMapping("/update")
        public R update(@RequestBody UserEntity user){
    
    
    //        ValidatorUtils.validateEntity(user);
        	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
        	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    
    
        		return R.error("用户名已存在。");
        	}
            userService.updateById(user);//全部更新
            return R.ok();
        }
    
        /**
         * 删除
         */
        @RequestMapping("/delete")
        public R delete(@RequestBody Long[] ids){
    
    
            userService.deleteBatchIds(Arrays.asList(ids));
            return R.ok();
        }
    }



Capa empresarial (servicio)



    package com.service;
    
    import java.util.List;
    import java.util.Map;
    
    import org.apache.ibatis.annotations.Param;
    
    import com.baomidou.mybatisplus.mapper.Wrapper;
    import com.baomidou.mybatisplus.service.IService;
    import com.entity.UserEntity;
    import com.utils.PageUtils;


    /**
     * 系统用户
     */
    public interface UserService extends IService<UserEntity> {
    
    
     	PageUtils queryPage(Map<String, Object> params);
        
       	List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);
       	
       	PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);
    	   	
    }



Capa de acceso a datos (Dao)

package com.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;

/**
 * 用户
 */
public interface UserDao extends BaseMapper<UserEntity> {
    
    
	
	List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);

	List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);
	
}


Adquisición del proyecto:

https://gitee.com/sinonfin/L-javaWebSha/tree/master

Supongo que te gusta

Origin blog.csdn.net/mojikopi/article/details/133349068
Recomendado
Clasificación