在线租房|基于Springboot+Vue实现前后端分离的租房系统

简介: 在线租房|基于Springboot+Vue实现前后端分离的租房系统

项目编号:BS-PT-105

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:Springboot+Mybatis

前后台开发技术:Vue+ElementUI+Nodejs

二,项目简介

社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。

本文从用户的功能要求出发,建立了房屋租赁系统,系统中的功能模块主要是实现人中心、房屋类型管理、房屋信息、预约看房管理、合同信息管理、房屋报修管理、房屋评价管理、我要当房东管理、留言板管理、系统管理等功能部分;经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与房屋租赁系统实现的实际需求相结合,讨论了JSP开发房屋租赁系统的使用。

2.1背景及意义

系统管理也都将通过计算机进行整体智能化操作,对于房屋租赁系统所牵扯的管理及数据保存都是非常多的,例如人中心、房屋类型管理、房屋信息、预约看房管理、合同信息管理、房屋报修管理、房屋评价管理、我要当房东管理、留言板管理、系统管理等,这给管理者的工作带来了巨大的挑战,面对大量的信息,传统的管理系统,都是通过笔记的方式进行详细信息的统计,后来出现电脑,通过电脑输入软件将纸质的信息统计到电脑上,这种方式比较传统,而且想要统计数据信息比较麻烦,还受时间和空间的影响,所以为此开发了房屋租赁系统;为用户提供了一个房屋租赁系统平台,方便管理员查看及维护,并且可以通过需求进行设备信息内容的编辑及维护等;对于用户而言,可以随时进行查看房屋信息和合同信息,并且可以进行报修、评价操作,房东可以进行查看房屋信息、核合同信息、维修信息、评价信息操作,管理员可以足不出户就可以获取到系统的数据信息等,而且还能节省用户很多时间,所以开发房屋租赁系统给管理者带来了很大的方便,同时也方便管理员对用户信息进行审核处理。

本论文房屋租赁系统主要牵扯到的程序,数据库与计算机技术等。覆盖知识面大,可以大大的提高系统人员工作效率。

2.2研究意义

由于现在的用户的工作越来越多,所以涉及到的数据也是相应增多。传统的房源信息查询管理模式面对大量数据信息,再给用户提供数据的时候效率会慢,而且用户等待的时间也相应的比较长,所以这样既不能满足用户的需求,不能给用户提供更有效的数据信息的同时,对于管理者的工作效率低,所以开发校房屋租赁系统可以改变这些缺憾。

目前,房屋租赁系统是吸引很多人的注意,通过互联网来搭建房屋租赁系统可以给用户提供更好的服务而且对于工作人员可以更好的提高工作效率。也可以更好的为我们建造更多区域及数据信息。

2.3研究内容

目前许多人仍将传统的纸质工具作为信息管理的主要工具,而网络技术的应用只是起到辅助作用。在对网络工具的认知程度上,较为传统的office软件等仍是人们使用的主要工具,而相对全面且专业的信息管理软件仍没有得到大多数人的了解或认可。本选题则旨在通过标签分类管理等方式,实现房屋租赁系统的各种功能,从而达到对房屋租赁系统的系统。

详细内容介绍,将在以下六章中详细阐述:

第一章、绪论,介绍了研究课题选择的背景及意义、研究现状,简要介绍了本文的章节内容。

第二章、引入技术知识,通过引入关键技术进行开发,向系统中涉及直观表达的技术知识。

第三章、重点分析了系统的分析,从系统强大的供需市场出发,对系统开发的可行性,系统流程以及系统性能和功能进行了探讨。

第四章、介绍了系统的详细设计方案,包括系统结构设计和数据库设计。

第五章、系统设计的实现,通过对系统功能设计的详细说明,论证了系统的结构。

第六章、系统的整体测试,评判系统是否可以上线运行。

房屋租赁系统的设计主要是为了满足用户的实际需求。 因此,它需要通过Internet实现,因此它必须具备硬件和软件基础。该平台最终可以通过科学技术和各种方式达到支持智能化的信息管理的目的。因此,它必须具备网络学习平台管理所需的环境和各种资料,并保证实现开放性,模块性和实用性三个原则。

房屋租赁系统的结构,系统实现的功能模块如下图1所示。

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

表4.1 config信息表

列名

数据类型

长度

约束

id

bigint

20

PRIMARY KEY

name

varchar

100

DEFAULT NULL

value

varchar

100

DEFAULT NULL

表4.2 discussfangwuxinxi信息表

列名

数据类型

长度

约束

id

bigint

20

PRIMARY KEY

refid

bigint

20

DEFAULT NULL

userid

bigint

20

DEFAULT NULL

表4.3 discusswoyaodangfangzhu信息表

列名

数据类型

长度

约束

id

bigint

20

PRIMARY KEY

refid

bigint

20

DEFAULT NULL

userid

bigint

20

DEFAULT NULL

表4.4 fangwubaoxiu信息表

列名

数据类型

长度

约束

id

bigint

20

PRIMARY KEY

hetongbianhao

varchar

200

DEFAULT NULL

fangwumingcheng

varchar

200

DEFAULT NULL

fangwuleixing

varchar

200

DEFAULT NULL

xiaoqu

varchar

200

DEFAULT NULL

baoxiumingcheng`

varchar

200

DEFAULT NULL

leixing

varchar

200

DEFAULT NULL

baoxiuneirong

varchar

200

DEFAULT NULL

tupian

varchar

200

DEFAULT NULL

fangzhuzhanghao

varchar

200

DEFAULT NULL

fangzhuxingming

varchar

200

DEFAULT NULL

yonghuming

varchar

200

DEFAULT NULL

lianxidianhua

varchar

200

DEFAULT NULL

sfsh

varchar

200

DEFAULT NULL

表4.5 fangwuleixing信息表

列名

数据类型

长度

约束

id

bigint

20

PRIMARY KEY

fangwuleixing

bigint

20

DEFAULT NULL

表4.6 fangwupingjia信息表

列名

数据类型

长度

约束

hetongbianhao

varchar

11

DEFAULT NULL

fangwumingcheng

varchar

200

DEFAULT NULL

fangwuleixing

varchar

200

DEFAULT NULL

xiaoqu

varchar

200

DEFAULT NULL

pingfen

varchar

200

DEFAULT NULL

fangzhuzhanghao

varchar

200

DEFAULT NULL

yonghuming

varchar

200

DEFAULT NULL

lianxidianhua

varchar

200

DEFAULT NULL

sfsh

varchar

200

DEFAULT NULL

表4.7 fangzhu信息表

列名

数据类型

长度

约束

id

bigint

200

PRIMARY KEY

fangzhuzhanghao

varchar

200

DEFAULT NULL

mima

varchar

200

DEFAULT NULL

fangzhuxingming

varchar

200

DEFAULT NULL

xingbie

varchar

200

DEFAULT NULL

touxiang

varchar

200

DEFAULT NULL

shouji

varchar

200

DEFAULT NULL

shenfenzheng

varchar

200

DEFAULT NULL

表4.8 messages信息表

列名

数据类型

长度

约束

id

bigint

11

DEFAULT NULL

userid

username

200

DEFAULT NULL

username

varchar

200

DEFAULT NULL

表4.9 news信息表

列名

数据类型

长度

约束

id

bigint

20

PRIMARY KEY

title

varchar

200

DEFAULT NULL

picture

varchar

200

DEFAULT NULL

三,系统展示

用户登录

管理员登录成功后,进入后台页面,可以进行查看个人中心、房屋类型管理、房屋信息、预约看房管理、合同信息管理、房屋报修管理、房屋评价管理、我要当房东管理、留言板管理、系统管理等功能模块,进行相对应操作。

房主管理:通过列表可以获取用户名、密码、姓名、头像、性别、职业、联系方式、身份证号、进行查看用户信息或修改删除操作还可以通过新增进行添加用户信息操作,如图所示。

房屋类型管理:通过列表可以进行查看房屋类型,进行查看详情或修改、删除操作,并通过新增进行添加类型信息,如图所示

房屋信息管理:通过房屋信息列表可以查看房屋名称、房屋类型、房屋图片、出租方式、朝向楼层、面积、房屋状态、小区、详细地址、月租价格、押金、房屋设施、发布日期、房住帐号、房主姓名、等信息进行查看详细或修改或删除操作,并且可以通过查看评论进行在线回复信息或进行新增房屋信息,操作,如图所示。

公告信息管理:通过列表可以获取公告信息的标题、简介、图片等详细信息进行修改或删除操作,并且可以通过新增公告信息进行添加公告信息,如图所示。

预约看房管理:通过列表可以获取预约编号、房屋名称、房屋类型、房屋状态、小区、月租价格、押金、租用月数、预约时间、用户名、姓名、身份证、联系电话、房主账号、房主姓名、审核回复、审核状态等信息,进行审核或删除操作,如图所示。

我要当房东信息:通过列表可以查看房屋名称、房屋类型、图片、租赁方式、小区、月租价格、用户名、房屋详情、朝向楼层、面积、发布日期、联系电话等信息,进行查看详情或修改、删除操作或进行审核操作,如图所示。

房主登录后的主要功能:不再一 一展示

租房用户注册登录后的主要功能:不再一 一展示

个人中心操作界面:

四,核心代码展示

package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.FangwubaoxiuEntity;
import com.entity.view.FangwubaoxiuView;
import com.service.FangwubaoxiuService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
 * 房屋报修
 * 后端接口
 * @author 
 * @email 
 * @date 2023-03-04 18:46:21
 */
@RestController
@RequestMapping("/fangwubaoxiu")
public class FangwubaoxiuController {
    @Autowired
    private FangwubaoxiuService fangwubaoxiuService;
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,FangwubaoxiuEntity fangwubaoxiu, HttpServletRequest request){
    String tableName = request.getSession().getAttribute("tableName").toString();
    if(tableName.equals("fangzhu")) {
      fangwubaoxiu.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));
    }
    if(tableName.equals("yonghu")) {
      fangwubaoxiu.setYonghuming((String)request.getSession().getAttribute("username"));
    }
        EntityWrapper<FangwubaoxiuEntity> ew = new EntityWrapper<FangwubaoxiuEntity>();
    PageUtils page = fangwubaoxiuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwubaoxiu), params), params));
        return R.ok().put("data", page);
    }
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,FangwubaoxiuEntity fangwubaoxiu, HttpServletRequest request){
        EntityWrapper<FangwubaoxiuEntity> ew = new EntityWrapper<FangwubaoxiuEntity>();
    PageUtils page = fangwubaoxiuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, fangwubaoxiu), params), params));
        return R.ok().put("data", page);
    }
  /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( FangwubaoxiuEntity fangwubaoxiu){
        EntityWrapper<FangwubaoxiuEntity> ew = new EntityWrapper<FangwubaoxiuEntity>();
        ew.allEq(MPUtil.allEQMapPre( fangwubaoxiu, "fangwubaoxiu")); 
        return R.ok().put("data", fangwubaoxiuService.selectListView(ew));
    }
   /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(FangwubaoxiuEntity fangwubaoxiu){
        EntityWrapper< FangwubaoxiuEntity> ew = new EntityWrapper< FangwubaoxiuEntity>();
    ew.allEq(MPUtil.allEQMapPre( fangwubaoxiu, "fangwubaoxiu")); 
    FangwubaoxiuView fangwubaoxiuView =  fangwubaoxiuService.selectView(ew);
    return R.ok("查询房屋报修成功").put("data", fangwubaoxiuView);
    }
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        FangwubaoxiuEntity fangwubaoxiu = fangwubaoxiuService.selectById(id);
        return R.ok().put("data", fangwubaoxiu);
    }
    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        FangwubaoxiuEntity fangwubaoxiu = fangwubaoxiuService.selectById(id);
        return R.ok().put("data", fangwubaoxiu);
    }
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody FangwubaoxiuEntity fangwubaoxiu, HttpServletRequest request){
      fangwubaoxiu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(fangwubaoxiu);
        fangwubaoxiuService.insert(fangwubaoxiu);
        return R.ok();
    }
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody FangwubaoxiuEntity fangwubaoxiu, HttpServletRequest request){
      fangwubaoxiu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(fangwubaoxiu);
        fangwubaoxiuService.insert(fangwubaoxiu);
        return R.ok();
    }
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody FangwubaoxiuEntity fangwubaoxiu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(fangwubaoxiu);
        fangwubaoxiuService.updateById(fangwubaoxiu);//全部更新
        return R.ok();
    }
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        fangwubaoxiuService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    /**
     * 提醒接口
     */
  @RequestMapping("/remind/{columnName}/{type}")
  public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
             @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    map.put("column", columnName);
    map.put("type", type);
    if(type.equals("2")) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Calendar c = Calendar.getInstance();
      Date remindStartDate = null;
      Date remindEndDate = null;
      if(map.get("remindstart")!=null) {
        Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
        c.setTime(new Date()); 
        c.add(Calendar.DAY_OF_MONTH,remindStart);
        remindStartDate = c.getTime();
        map.put("remindstart", sdf.format(remindStartDate));
      }
      if(map.get("remindend")!=null) {
        Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
        c.setTime(new Date());
        c.add(Calendar.DAY_OF_MONTH,remindEnd);
        remindEndDate = c.getTime();
        map.put("remindend", sdf.format(remindEndDate));
      }
    }
    Wrapper<FangwubaoxiuEntity> wrapper = new EntityWrapper<FangwubaoxiuEntity>();
    if(map.get("remindstart")!=null) {
      wrapper.ge(columnName, map.get("remindstart"));
    }
    if(map.get("remindend")!=null) {
      wrapper.le(columnName, map.get("remindend"));
    }
    String tableName = request.getSession().getAttribute("tableName").toString();
    if(tableName.equals("fangzhu")) {
      wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));
    }
    if(tableName.equals("yonghu")) {
      wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
    }
    int count = fangwubaoxiuService.selectCount(wrapper);
    return R.ok().put("count", count);
  }
}
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.HetongxinxiEntity;
import com.entity.view.HetongxinxiView;
import com.service.HetongxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
 * 合同信息
 * 后端接口
 * @author 
 * @email 
 * @date 2023-03-04 18:46:21
 */
@RestController
@RequestMapping("/hetongxinxi")
public class HetongxinxiController {
    @Autowired
    private HetongxinxiService hetongxinxiService;
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,HetongxinxiEntity hetongxinxi, HttpServletRequest request){
    String tableName = request.getSession().getAttribute("tableName").toString();
    if(tableName.equals("yonghu")) {
      hetongxinxi.setYonghuming((String)request.getSession().getAttribute("username"));
    }
    if(tableName.equals("fangzhu")) {
      hetongxinxi.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));
    }
        EntityWrapper<HetongxinxiEntity> ew = new EntityWrapper<HetongxinxiEntity>();
    PageUtils page = hetongxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, hetongxinxi), params), params));
        return R.ok().put("data", page);
    }
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,HetongxinxiEntity hetongxinxi, HttpServletRequest request){
        EntityWrapper<HetongxinxiEntity> ew = new EntityWrapper<HetongxinxiEntity>();
    PageUtils page = hetongxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, hetongxinxi), params), params));
        return R.ok().put("data", page);
    }
  /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( HetongxinxiEntity hetongxinxi){
        EntityWrapper<HetongxinxiEntity> ew = new EntityWrapper<HetongxinxiEntity>();
        ew.allEq(MPUtil.allEQMapPre( hetongxinxi, "hetongxinxi")); 
        return R.ok().put("data", hetongxinxiService.selectListView(ew));
    }
   /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(HetongxinxiEntity hetongxinxi){
        EntityWrapper< HetongxinxiEntity> ew = new EntityWrapper< HetongxinxiEntity>();
    ew.allEq(MPUtil.allEQMapPre( hetongxinxi, "hetongxinxi")); 
    HetongxinxiView hetongxinxiView =  hetongxinxiService.selectView(ew);
    return R.ok("查询合同信息成功").put("data", hetongxinxiView);
    }
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        HetongxinxiEntity hetongxinxi = hetongxinxiService.selectById(id);
        return R.ok().put("data", hetongxinxi);
    }
    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        HetongxinxiEntity hetongxinxi = hetongxinxiService.selectById(id);
        return R.ok().put("data", hetongxinxi);
    }
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody HetongxinxiEntity hetongxinxi, HttpServletRequest request){
      hetongxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(hetongxinxi);
        hetongxinxiService.insert(hetongxinxi);
        return R.ok();
    }
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody HetongxinxiEntity hetongxinxi, HttpServletRequest request){
      hetongxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(hetongxinxi);
        hetongxinxiService.insert(hetongxinxi);
        return R.ok();
    }
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody HetongxinxiEntity hetongxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(hetongxinxi);
        hetongxinxiService.updateById(hetongxinxi);//全部更新
        return R.ok();
    }
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        hetongxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    /**
     * 提醒接口
     */
  @RequestMapping("/remind/{columnName}/{type}")
  public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
             @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    map.put("column", columnName);
    map.put("type", type);
    if(type.equals("2")) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      Calendar c = Calendar.getInstance();
      Date remindStartDate = null;
      Date remindEndDate = null;
      if(map.get("remindstart")!=null) {
        Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
        c.setTime(new Date()); 
        c.add(Calendar.DAY_OF_MONTH,remindStart);
        remindStartDate = c.getTime();
        map.put("remindstart", sdf.format(remindStartDate));
      }
      if(map.get("remindend")!=null) {
        Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
        c.setTime(new Date());
        c.add(Calendar.DAY_OF_MONTH,remindEnd);
        remindEndDate = c.getTime();
        map.put("remindend", sdf.format(remindEndDate));
      }
    }
    Wrapper<HetongxinxiEntity> wrapper = new EntityWrapper<HetongxinxiEntity>();
    if(map.get("remindstart")!=null) {
      wrapper.ge(columnName, map.get("remindstart"));
    }
    if(map.get("remindend")!=null) {
      wrapper.le(columnName, map.get("remindend"));
    }
    String tableName = request.getSession().getAttribute("tableName").toString();
    if(tableName.equals("yonghu")) {
      wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
    }
    if(tableName.equals("fangzhu")) {
      wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));
    }
    int count = hetongxinxiService.selectCount(wrapper);
    return R.ok().put("count", count);
  }
}

五,项目总结

房屋租赁系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的房屋租赁系统进行开始系统的实现,管理员根据问题信息进行科研成果信息及留言信息管理等操作,并且可以根据需求进行数据信息的增加修改删除等操作,完美的解决了当下房屋租赁系统中所遇到的问题。

经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的房屋租赁系统的信息系统,主要使用JSP和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。

房屋租赁系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。

对于房屋租赁系统的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的平台管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。


相关文章
|
16天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
87 13
|
24天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
289 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
107 2
|
1月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
50 0
|
JavaScript 算法 Java
springboot vue二手交易市场毕设源码(毕设)
springboot vue二手交易市场毕设源码
374 0
springboot vue二手交易市场毕设源码(毕设)
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
198 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
192 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
123 62
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。