基于Java+SpringBoot的房源出租信息管理系统【源码+论文+演示视频+包运行成功】

本文介绍了使用Java和SpringBoot构建的租房信息管理系统,涵盖了系统设计、数据库设计、关键代码示例以及功能模块实现。通过E-R图展示了数据库设计,提供了一些关键方法的代码片段,最后给出源码获取方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主介绍csdn特邀作者、博客专家、java领域优质创作者、博客之星,擅长Java、微信小程序、Python、Android等技术,专注于Java技术领域和毕业项目实战

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

Java项目精品实战案例(300套)
Java微信小程序项目实战(200套)

Python项目精品实战案例(100套)

目录

一、效果演示

二、前言介绍

三、主要技术

四、系统设计

4.1、主要功能模块设计

4.2、系统开发架构图

4.3、系统逻辑结构设计

五、功能实现截图

六、数据库设计

七、关键代码

八、源码获取


一、效果演示

基于springboot+vue的养老服务管理系统演示视频

二、前言介绍

本次的设计就是针对房源出租信息管理系统进行的信息化建设,在语言技术选择上采用成熟稳定的JAVA语言,另外一方面为了能够使开发更接近目前主流技术还特意采用了Spring Boot框架来进行框架设计。前端页面框架方面还是选择了比较流行的JSP可以从不同角度来满足房源信息管理系统的页面需求。技术及房产行业的特有业务加持来共同完成信息化的建设。

三、主要技术

技术名作用
SpringBoot后端框架
JSP前端技术
MySQL数据库

四、系统设计

4.1、主要功能模块设计

4.2、系统开发架构图

4.3、系统逻辑结构设计

五、功能实现截图

首页

后台登录

 房源信息添加页面

 申请租房查询

这里功能太多,就不一一截图展示了

六、数据库设计

E-R图

管理员信息属性有:用户名、密码、编号。如下图所示。

用户信息属性包括:编号,姓名,性别,年龄,电话,邮箱,地址,身份证号。具体如下图所示。

房屋信息

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

 

七、关键代码

package com.example.service;

import cn.hutool.core.collection.CollectionUtil;
import com.example.dao.FangdongInfoDao;
//kuabiaojisuan1
import com.example.entity.*;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import com.example.entity.FangdongInfo;
//kuabiaojisuan2
import com.example.exception.CustomException;
import com.example.common.ResultCode;
import com.example.vo.FangdongInfoVo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import cn.hutool.crypto.SecureUtil;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Service
public class FangdongInfoService {

    @Resource
    private FangdongInfoDao fangdongInfoDao;
	
	//kuabiaojisuan3

    public FangdongInfo add(FangdongInfo fangdongInfo) {
        List<Long> touxiangflst = fangdongInfo.getTouxiangflst();
        if (!CollectionUtil.isEmpty(touxiangflst)) {
            fangdongInfo.setTouxiang(touxiangflst.toString());
        }
		
		        //shangxchxuantupxian
        // 唯一校验
        int count = fangdongInfoDao.checkRepeat("yonghuming", fangdongInfo.getYonghuming(), null);
if (count > 0) {
	throw new CustomException("1001", "该用户名\"" + fangdongInfo.getYonghuming() + "\"已存在");
}
      // fangdongInfo.setAccount((double) 0);
	  
        fangdongInfoDao.insertSelective(fangdongInfo);
        return fangdongInfo;
    }
	
	public List<Map<String,String>> findByDiqu() {
        return fangdongInfoDao.findByDiqu();
    }

    public void delete(Long id) {
        fangdongInfoDao.deleteByPrimaryKey(id);
    }

    public void update(FangdongInfo fangdongInfo) {
        List<Long> touxiangflst = fangdongInfo.getTouxiangflst();
        if (!CollectionUtil.isEmpty(touxiangflst)) {
            fangdongInfo.setTouxiang(touxiangflst.toString());
        }
		
		        //shangxchxuantupxian
		//youdianzan
        fangdongInfoDao.updateByPrimaryKeySelective(fangdongInfo);
    }

    public FangdongInfo findById(Long id) {
        return fangdongInfoDao.selectByPrimaryKey(id);
    }

    public List<FangdongInfoVo> findAll() {
        return fangdongInfoDao.findByJianjie("all");
    }

    public PageInfo<FangdongInfoVo> findPage(String jianjie, Integer pageNum, Integer pageSize, HttpServletRequest request) {
        PageHelper.startPage(pageNum, pageSize);
		
		List<FangdongInfoVo> all=null;
        Account user = (Account) request.getSession().getAttribute("user");
        if (user.getLevel().equals("管理员")) {all = fangdongInfoDao.findByJianjie(jianjie);}
		
        
        return PageInfo.of(all);
    }
	
	public PageInfo<FangdongInfoVo> findPageqt(String jianjie, Integer pageNum, Integer pageSize, HttpServletRequest request) {
        PageHelper.startPage(pageNum, pageSize);
		
		List<FangdongInfoVo> all=null;
        Account user = (Account) request.getSession().getAttribute("user");
        all = fangdongInfoDao.findByJianjie(jianjie);
		
	
	
        
        return PageInfo.of(all);
    }

   // public FangdongInfoVo findByUserName(String name) {
//        return fangdongInfoDao.findByUsername(name);
//    }

	public FangdongInfo login(String yonghuming, String mima) {
        FangdongInfo fangdongInfo = fangdongInfoDao.findByYonghumingzj(yonghuming);
        if (fangdongInfo == null) {
            throw new CustomException(ResultCode.USER_ACCOUNT_ERROR);
        }
        if (!SecureUtil.md5(mima).equalsIgnoreCase(fangdongInfo.getMima())) {
            throw new CustomException(ResultCode.USER_ACCOUNT_ERROR);
        }
        return fangdongInfo;
    }
	
    public void changeStatus(Long id) {
        FangdongInfo fangdongInfo = fangdongInfoDao.selectByPrimaryKey(id);
        if(fangdongInfo.getStatus().equals("是")){
            fangdongInfo.setStatus("否");
            fangdongInfoDao.updateByPrimaryKey(fangdongInfo);
        }else if(fangdongInfo.getStatus().equals("否")){
            fangdongInfo.setStatus("是");
            fangdongInfoDao.updateByPrimaryKey(fangdongInfo);
        }
    }
	//ddaizdhifu
	//youtixing
	 public void update2(FangdongInfoVo fangdongInfo) {
        List<Long> touxiangflst = fangdongInfo.getTouxiangflst();
        if (!CollectionUtil.isEmpty(touxiangflst)) {
            fangdongInfo.setTouxiang(touxiangflst.toString());
        }
		
		        //shangxchxuantupxian
        if (StringUtils.isEmpty(fangdongInfo.getMima())) {
            // 默认密码123456
            fangdongInfo.setMima(SecureUtil.md5("123456"));
        } else {
            fangdongInfo.setMima(SecureUtil.md5(fangdongInfo.getMima()));
        }
        fangdongInfoDao.updateByPrimaryKeySelective(fangdongInfo);
    }
	
   
}

八、源码获取

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

精彩专栏推荐订阅下方专栏👇🏻👇🏻👇🏻👇🏻

Java项目精品实战案例(300套)

Java微信小程序项目实战(200套)

Python项目精品实战案例(100套)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值