基于JAVA+SSM的房屋租赁系统

news2024/11/28 10:35:15

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

随着社会的发展和人们生活水平的提高,房屋租赁市场的需求逐渐增加。为了满足人们对于方便、快捷的房屋租赁服务的需求,我们决定开发一款基于JAVA+SSM前后端分离的房屋租赁系统。
我们的目标是为游客、房东和租客提供一个便捷、高效的房屋租赁平台,使其能够方便地找到适合自己需求的房源并进行租赁操作。通过该系统,游客可以浏览系统主页,搜索房源信息,并查看房源详情。房东可以注册成为系统用户,发布自己的房源信息,并管理订单、反馈信息和收藏信息等。租客也可以注册成为系统用户,搜索、预订房源,并进行相关的订单管理、反馈信息和收藏管理等操作。
在研发过程中,我们将使用JAVA作为后端开发语言,并采用SSM框架实现前后端分离。这种架构能够使系统的开发更加模块化和可扩展,同时也提供了良好的安全性和稳定性。
为了保证系统的功能完善和用户体验,我们将注意以下几个方面的设计:
系统共设计了三个角色:游客、房东、租客。当时考虑的比较简单,没有设置系统管理员的角色,反正对于一些小项目而且也够用了。

  1. 游客:尚未进行注册和登录。具备登录注册、房源的搜索、查询详情等权限。
  2. 房东:用户角色为房东,有出租房屋需求的群体。具备登录、个人资料的修改、登录密码修改、房源的搜索、查询详情、房源的收藏、查看租房订单、取消订单、房源信息的发布、房源信息的查询管理、房源状态的管理、反馈信息的处理等权限。
  3. 租客:用户角色为租客,有租房需求的群体。具备登录、个人资料的修改、登录密码修改、房源的搜索、查询详情、房源的收藏、创建租房订单、取消订单、删除订单、支付、房源评价、反馈信息的填报等权限。

二、项目技术简介:

前端

名称描述
HTML、CSS用于设计网页的内容和样式
JavaScript、JQuery作为开发 Web 页面的脚本语言,为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果
Bootstrap基于 HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷

后端

名称描述
SpringSpring 是 Java EE 编程领域的一个轻量级开源框架,该框架由一个叫 Rod Johnson 的程序员在 2002 年最早提出并随后创建,是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架。Spring 是一个开源容器框架,它集成各类型的工具,通过核心的 Bean factory 实现了底层的类的实例化和生命周期的管理。在整个框架中,各类型的功能被抽象成一个个的 Bean,这样就可以实现各种功能的管理,包括动态加载和切面编程。
SpringMVCSpring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
MyBatis PlusMyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
ThymeleafThymeleaf 是一个流行的模板引擎,该模板引擎采用 Java 语言开发的,用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 JSP、Velocity、FreeMaker 等,它也可以轻易的与 Spring MVC 等 Web 框架进行集成作为 Web 应用的模板引擎。
DruidDruid 是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到 Druid 后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入 Druid,外部系统就可以对该事实进行查询。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:comment(comment)

字段名类型默认值列注释
idintNULL主键ID
reply_idintNULL回复评论ID
room_idintNULL房间ID
user_idintNULL用户ID
contenttextNULL内容
rate_countintNULL评价星数
create_timedatetimeNULL创建时间
update_timedatetimeNULL修改时间

2:favor(favor)

字段名类型默认值列注释
idintNULL主键ID
user_idintNULL用户ID
room_idintNULL房子ID
create_timedatetimeNULL创建时间
update_timedatetimeNULL修改时间

3:message(message)

字段名类型默认值列注释
idintNULL主键ID
room_idintNULL房子ID
order_idintNULL
send_idintNULL发送人ID
accept_idintNULL接受人ID
titlevarcharNULL标题
contenttextNULL内容
statusvarcharNULL状态
create_timedatetimeNULL创建时间
update_timedatetimeNULL修改时间
remarkvarcharNULL处理意见

4:room(room)

字段名类型默认值列注释
idintNULL主键ID
owner_idintNULL房东ID
titlevarcharNULL标题
sub_titlevarcharNULL副标题
month_pricedoubleNULL月租价格
locationvarcharNULL所在地
infotextNULL描述
contenttextNULL内容
imgtextNULL封面
imagestextNULL图片
create_timedatetimeNULL创建时间
update_timedatetimeNULL修改时间
look_countintNULL浏览量

5:room_detail(room_detail)

字段名类型默认值列注释
idintNULL主键ID
room_idintNULL房间ID
bedroom_countintNULL房间数量
parlour_countintNULL客厅数量
restroom_countintNULL卫生间数量
bathroom_countintNULL浴室数量
capacityvarcharNULL大小
garageintNULL车库数量
areavarcharNULL小区
addressvarcharNULL详细地址
typevarcharNULL类型
build_yearvarcharNULL建造年限
statusvarcharNULL状态
elevatorvarcharNULL是否有电梯
kitchenvarcharNULL是否有厨房
free_wifivarcharNULL免费Wi-Fi
windowvarcharNULL窗户
metrovarcharNULL是否有地铁
rent_typevarcharNULL租赁方式
create_timedatetimeNULL创建时间
update_timedatetimeNULL修改时间

6:room_order(room_order)

字段名类型默认值列注释
idintNULL主键ID
room_idintNULL房子ID
user_idintNULL用户ID
owner_idintNULL房东ID
order_numvarcharNULL订单编号
pay_ordervarcharNULL订单流水号
titlevarcharNULL标题
sub_titlevarcharNULL副标题
pay_moneydoubleNULL价格
contenttextNULL内容
attachmentvarcharNULL附件文件
statusvarcharNULL状态
create_timedatetimeNULL创建时间
pay_timedatetimeNULL支付时间
update_timedatetimeNULL修改时间
from_timedatetimeNULL
to_timedatetimeNULL

7:user(user)

字段名类型默认值列注释
idintNULL主键ID
namevarcharNULL姓名
passwordvarcharNULL登陆密码
sexvarcharNULL性别
birthvarcharNULL出生年月
idcard_numvarcharNULL身份证号码
phonevarcharNULL手机号
emailvarcharNULL邮箱
locationvarcharNULL所在地
aboutvarcharNULL关于
rolevarcharNULL角色
create_timedatetimeNULL创建时间
update_timedatetimeNULL修改时间

五、角色介绍:

  1. 系统共设计了三个角色:游客、房东、租客。当时考虑的比较简单,没有设置系统管理员的角色,反正对于一些小项目而且也够用了。

    1. 游客:尚未进行注册和登录。具备登录注册、房源的搜索、查询详情等权限。
    2. 房东:用户角色为房东,有出租房屋需求的群体。具备登录、个人资料的修改、登录密码修改、房源的搜索、查询详情、房源的收藏、查看租房订单、取消订单、房源信息的发布、房源信息的查询管理、房源状态的管理、反馈信息的处理等权限。
    3. 租客:用户角色为租客,有租房需求的群体。具备登录、个人资料的修改、登录密码修改、房源的搜索、查询详情、房源的收藏、创建租房订单、取消订单、删除订单、支付、房源评价、反馈信息的填报等权限。

六、功能介绍:

游客功能介绍

功能模块功能描述
登录注册方面注册成为系统用户
系统主页浏览系统主页、房源信息搜索、房源详情的查看(统计浏览量)

房东功能介绍

功能模块功能描述
登录注册方面填写用户信息进行账号注册、使用邮箱密码进行登录
个人资料方面修改个人资料(姓名、所在地、邮箱、手机号、身份证号、个人说明等)、修改登录密码
订单管理方面查看所有订单、订单详情、取消订单、删除订单
发布房源填写基本信息、填写详细信息、上传封面图片以及房屋照片
房源信息管理自己已发布的房源信息、编辑房源、删除房源、暂停发布、启动发布、租期到期
反馈信息方面查询所有反馈信息、反馈信息搜索、删除反馈、处理反馈
收藏管理方面查询所有收藏信息、收藏信息搜索、取消收藏
系统主页浏览系统主页、房源信息搜索、房源详情的查看(统计浏览量)、收藏房源

租客功能介绍

功能模块功能描述
登录注册方面填写用户信息进行账号注册、使用邮箱密码进行登录
个人资料方面修改个人资料(姓名、所在地、邮箱、手机号、身份证号、个人说明等)、修改登录密码
订单管理方面查看所有订单、创建订单、支付订单(假支付)、订单详情、取消订单、删除订单、评论房源
反馈信息方面反馈信息、查询所有反馈信息、反馈信息搜索、查询详情以及处理意见
收藏管理方面查询所有收藏信息、收藏信息搜索、取消收藏
系统主页浏览系统主页、房源信息搜索、房源详情的查看(统计浏览量)、收藏房源

七、开发工具与环境:

  • 开发工具

    • IntelliJ IDEA 2019.2.2 主要进行系统的开发、系统调试等
    • WebStorm 2019.2.1 主要进行前端页面的开发。
    • Navcat 主要进行数据库的连接、建库建表、系统调试等。
  • 开发环境

    • JDK 1.8
    • Maven 3.6
    • MySQL 5.7
    • Tomcat 8.5.78

八、项目结构:

本项目使用标准 SSM 目录结构,后端使用 MVC 三层架构,具体项目结构如下:

  • src:源码目录
  • src/main/java:源码主体目录
  • src/main/java/xxx/component:java常用组件存放地址,比如登录拦截器【拦截器】
  • src/main/java/xxx/controller:java控制器类存放地址【控制层】
  • src/main/java/xxx/entity:java实体类存放地址【模型】
  • src/main/java/xxx/dao:MyBatis的映射接口存放地址,【数据访问层】
  • src/main/java/xxx/service:java业务层接口存放地址【业务逻辑抽象层】
  • src/main/java/xxx/utils:java工具类存放地址【工具类】
  • src/resources:资源文件存放目录(Spring、SpringMVC、Mybatis、日志、数据源、数据库脚本等)
  • src/main/resources/mybatis:MyBatis配置文件位置
  • src/main/resources/mybatis/mybatis-config.xml:MyBatis全局配置文件
  • src/main/resources/spring/applicationContext.xml:Spring配置文件
  • src/main/resources/springmvc/springmvc-servlet.xml:Spring配置文件
  • src/main/resources/db.properties:数据源配置
  • src/main/resources/log4j.properties:日志配置
  • src/main/resources/verio_house.sql:数据库脚本
  • src/main/webapp/resource:前端静态资源存放地址
  • src/main/webapp/WEB-INF/templates:前端页面存放地址
  • src/main/webapp/WEB-INF/web.xml:Java EE工程文件
  • pom.xml:Maven项目依赖管理文件

注意!如果想要部署本项目,你需要修改两个文件:

  1. 数据库配置文件:src/main/resources/db.properties
  2. 阿里云对象存储配置:src/main/java/com/verio/utils/OssUtil.java

注意 MySQL 的版本是 5.7,使用其它版本可能会出现其它未知问题。

九、代码示例:

/**
生成验证码
 */
@GetMapping("/captchaImage")
public AjaxResult getCode(HttpServletResponse response) throws IOException
{
 AjaxResult ajax = AjaxResult.success();
 boolean captchaEnabled = configService.selectCaptchaEnabled();
 ajax.put("captchaEnabled", captchaEnabled);
 if (!captchaEnabled)
 {
 return ajax;
 }
 // 保存验证码信息

 String uuid = IdUtils.simpleUUID();
 String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid;
   String capStr = null, code = null;
 BufferedImage image = null;
   // 生成验证码
 String captchaType = RuoYiConfig.getCaptchaType();
 if ("math".equals(captchaType))
 {
 String capText = captchaProducerMath.createText();
 capStr = capText.substring(0, capText.lastIndexOf("@"));
 code = capText.substring(capText.lastIndexOf("@") + 1);
 image = captchaProducerMath.createImage(capStr);
 }
 else if ("char".equals(captchaType))
 {
 capStr = code = captchaProducer.createText();
 image = captchaProducer.createImage(capStr);
 }
   redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
 // 转换流信息写出
 FastByteArrayOutputStream os = new FastByteArrayOutputStream();
 try
 {
 ImageIO.write(image, "jpg", os);
 }
 catch (IOException e)
 {
 return AjaxResult.error(e.getMessage());
 }
   ajax.put("uuid", uuid);
 ajax.put("img", Base64.encode(os.toByteArray()));
 return ajax;
}
/*
用户登录
 */
@PostMapping("/login")
public ReturnMsg manageLogin(@RequestBody Map<String, String> param) {
 if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {
 return ReturnMsg.error("用户名或密码错误!");
 }
 ManageDTO manageDTO = new ManageDTO();
 manageDTO.setUserName(param.get("username"));
 manageDTO.setPassWord(param.get("password"));
 QueryWrapper manageDTOQueryWrapper = new QueryWrapper<>(manageDTO);
 manageDTOQueryWrapper.last("limit 1");
 ManageDTO adminDTOS = manageService.getOne(manageDTOQueryWrapper);
 if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");
 Map<String, Object> map = new HashMap<>();
 map.put("avatar", StrUtil.isNotBlank(adminDTOS.getPhotoImg()) ? adminDTOS.getPhotoImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
 map.put("introduction", adminDTOS.getName() + ",你好!");
 map.put("name", adminDTOS.getName());
 map.put("roles", Arrays.asList("admin"));
 map.put("type", adminDTOS.getStatus());
 Map<String, String> returnMap = new HashMap<>();
 String uuid = UUID.randomUUID().toString();
 returnMap.put("token", uuid);
 userInfoMap.put(uuid, JSON.toJSONString(map));
 return ReturnMsg.ok(returnMap);
}

十、系统截图:

202310292222440

202310292224316

202310292226552

202310292230958

202310292231709

202310292234430

十一、项目总结:

基于JAVA+SSM的房屋租赁系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的基于JAVA+SSM的房屋租赁系统进行开始系统的实现,经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的基于JAVA+SSM的房屋租赁系统 ,主要使用JAVA和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。

基于JAVA+SSM的房屋租赁系统平台的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,知识想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。对于驾校管理平台的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的平台管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。

十二、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1177054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Fourier分析导论——第4章——Fourier级数的一些应用(E.M. Stein R. Shakarchi)

第 4 章 傅里叶级数的一些应用 Fourier series and analogous expansions intervene very naturally in the general theory of curves and surfaces. In effect, this theory, conceived from the point of view of analysis, deals obviously with the study of arbitra…

clickhouse安装与远程访问

安装&#xff08;本文以ubuntu系统为例&#xff09; 单节点设置​ 为了延迟演示分布式环境的复杂性&#xff0c;我们将首先在单个服务器或虚拟机上部署ClickHouse。ClickHouse通常是从deb或rpm包安装&#xff0c;但对于不支持它们的操作系统也有其他方法。 例如&#xff0c;…

在现在大环境下如何回到月薪过万的软件测试工程师?

测试工程师这个岗位对于有些人来说&#xff0c;可能月薪过万很容易&#xff0c;可对于有些人来说&#xff0c;仿佛已经达到瓶颈&#xff0c;任凭工作再卖力每月也只是四五千的薪资&#xff0c;月入过万对于这些人来说就是可望不可即&#xff0c;那么这些人怎么才能冲破瓶颈&…

SpringMvc执行流程(含过滤器Filter+拦截器interceptor)

目录 1.Mvc的概念 2.SpringMvc的概念 3.SpringMvc的核心组件 4.SpringMvc的执行流程 5.SpringMvcFilterInterceptor执行流程 一、Mvc的概念 Mvc(Model View Controller)&#xff1a;Mvc是一种设计规范&#xff0c;它将数据、视图、业务逻辑代码进行分离&#xff0c;降低代码…

DockerFile常用保留字指令及知识点合集

目录 DockerFile加深理解&#xff1a; DockerFile常用保留字指令 保留字&#xff1a; RUN&#xff1a;容器构建时需要运行的命令 COPY&#xff1a;类似ADD&#xff0c;拷贝文件和目录到镜像中。 将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 …

安卓系统手机便签app使用哪一款?

在现代快节奏的生活中&#xff0c;我们经常会遇到各种繁忙的事务和容易遗忘的备忘事项。为避免大家遗忘重要的事情&#xff0c;大家可以在常用的手机上安装记录备忘事项的工具&#xff0c;为了帮助安卓用户高效地记录和管理这些信息&#xff0c;今天我将向大家推荐一款功能强大…

文心一言 VS 讯飞星火 VS chatgpt (129)-- 算法导论11.1 4题

四、用go语言&#xff0c;我们希望在一个非常大的数组上&#xff0c;通过利用直接寻址的方式来实现一个字典。开始时该数组中可能包含一些无用信息&#xff0c;但要对整个数组进行初始化是不太实际的&#xff0c;因为该数组的规模太大。请给出在大数组上实现直接寻址字典的方案…

网页JS自动化脚本(十)新旧字符串关键词检测

关于两串字符串的对比有时候也是比较常用的, 因为我们的程序往往是需要将字符串转发,但往往会有一些添加或者减少,或者是其它的一些操作,所以我们在使用自动化脚本的时候可以使用字符串的对比功能来帮助我们减少工作出现的错误现在我举个例子,先在桌面上新建一个html文件然后打…

软件测试/测试开发丨如何利用ChatGPT自动生成测试用例思维导图

点此获取更多相关资料 简介 思维导图是一种用图形方式表示思维和概念之间关系的工具&#xff1a; 有些公司会使用思维导图编写测试用例&#xff0c;这样做的优点是&#xff1a; 1.可视化和结构化。 2.易于理解&#xff0c;提高效率。 而 ChatGPT 是无法直接生成 xmind 格式…

记一次对某变异webshell的分析

0x01 前言 在某活动中捕获到一个变异的webshell&#xff08;jsp文件格式&#xff09;&#xff0c;如图1.1所示。样本webshell的大致功能是通过加载字节码来执行恶意代码&#xff0c;整个webshell的核心部分逻辑是在字节码中。 样本文件下载链接&#xff1a; https://github.co…

java高并发系列-第1天:必须知道的几个概念

同步&#xff08;Synchronous&#xff09;和异步&#xff08;Asynchronous&#xff09; 同步和异步通常来形容一次方法调用&#xff0c;同步方法调用一旦开始&#xff0c;调用者必须等到方法调用返回后&#xff0c;才能继续后续的行为。异步方法调用更像一个消息传递&#xff…

下班后赚钱的8个副业,适合上班族

每个人都有不同的经济压力&#xff0c;尤其对于上班族来说&#xff0c;薪水或许不足以满足生活的各种需求和零花钱。因此&#xff0c;越来越多的人开始寻找机会在下班后赚取额外的收入。 如今有许多适合上班族的副业选择&#xff0c;帮助他们实现财务上的增长。不仅可以满足日常…

在Docker中设置Redis的密码

目录 1&#xff0c;介绍2&#xff0c;实现“Docker Redis设置密码”的整体流程3&#xff0c;具体实现步骤4&#xff0c;结论 1&#xff0c;介绍 Docker是一个开源的应用容器引擎&#xff0c;可以自动化部署、扩展应用程序。它可以帮助开发人员将应用程序及其依赖项打包到一个可…

中国社科院大学-新加坡新跃社科大学全球战略领导力博士学位教育项目招生简章

Singapore University of Social Sciences--University of Chinese Academy of Social Sciences Doctoral program on Global Strategic Leadership V13146152701 一、项目简介 全球经济正在经历由科技进步和创新、政治和人口剧烈变化所带来的巨大的不确定性和挑战。面对日…

Java中各个版本JDK分别有哪些常见的垃圾回收算法?它们的适用场景和开启方法是什么?

Java中各个版本JDK分别有哪些常见的垃圾回收算法&#xff1f;它们的使用场景和开启方法是什么&#xff1f; 1.1 JDK 1.8 中的垃圾回收算法1.2 JDK 11 中的垃圾回收算法1.3 JDK17中的垃圾回收算法 1.1 JDK 1.8 中的垃圾回收算法 Java 8引入了一些不同类型的垃圾回收算法&#x…

Vue中切换tab路由,提示this.$confirm确定和取消执行不同的逻辑

beforeRouteLeave (to, from, next) { // 离开页面 if (this.editFlag true) { this.$confirm(页面尚未保存&#xff0c;确认离开吗?, 提示, { distinguishCancelAndClose: true, // 区分取消和关闭 confirmButtonText: 确定, cancelButtonText: 取消, type: info }).then(()…

一文读懂RASP运行时防护平台及应用实践

「云原生安全既是一种全新安全理念&#xff0c;也是实现云战略的前提。 基于蚂蚁集团内部多年实践&#xff0c;云原生PaaS平台SOFAStack发布完整的软件供应链安全产品及解决方案&#xff0c;包括静态代码扫描Pinpoint&#xff0c;软件成分分析SCA&#xff0c;交互式安全测试IAS…

Git 安全警告修复手册:解决 `fatal: detected dubious ownership in repository at ` 问题 ️

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

打开运行ps提示找不到msvcp140.dll的解决方法分享

最近&#xff0c;我在安装Adobe Photoshop&#xff08;简称PS&#xff09;和Adobe Premiere Pro&#xff08;简称PR&#xff09;时遇到了一个困扰我很久的问题&#xff0c;即提示找不到msvcp140.dll文件。msvcp140.dll是Microsoft Visual C 2015 Redistributable的一个组件&…

MyBatis缓存详解

1. MyBatis缓存 MyBatis中的缓存是用来提高性能&#xff0c;减少数据库交互次数的机制。它分为一级缓存&#xff08;Local Cache&#xff09;和二级缓存&#xff08;Global Cache&#xff09;。 1.1 一级缓存&#xff08;Local Cache&#xff09; 作用范围&#xff1a;一级缓…