基于JAVA+SpringBoot+Vue的前后端分离的旅游网站

news2024/11/24 20:30:01

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

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


一、项目背景介绍:

近年来,随着社会的不断发展和人们生活水平的提高,旅游活动逐渐成为人们生活中不可或缺的一部分。随着互联网技术的迅猛发展,旅游行业也迎来了数字化、网络化的新时代。在这个背景下,构建一个高效、智能、用户友好的旅游网站已经成为旅游行业关注的焦点之一。

研究背景:
传统的旅游服务方式存在着信息不对称、服务流程繁琐、用户体验不佳等问题。为了解决这些问题,采用现代化的技术手段来构建旅游网站成为改善用户体验、提高服务效率的有效途径。SpringBoot和Vue作为当今流行的开发框架,因其轻量级、易于使用、灵活性强等特点,成为构建高性能、可扩展性好的现代化旅游网站的理想选择。

SpringBoot作为一种基于Java的开发框架,通过简化开发流程,提供了丰富的功能模块和组件,使得开发者可以更加专注于业务逻辑的实现,极大地提高了开发效率。同时,SpringBoot还具有良好的集成性,可以轻松整合各种数据库、消息队列、缓存等第三方组件,为构建复杂的旅游网站提供了强大的支持。

Vue作为一种流行的前端框架,具有轻量级、灵活、易学易用等优点。通过Vue,开发者可以构建出交互性强、界面美观的前端页面,提升用户的使用体验。Vue的响应式数据绑定、组件化开发等特性,使得前端开发更加模块化、可维护性更好,为构建现代化旅游网站提供了有力的支持。

综上所述,基于SpringBoot和Vue的旅游网站开发是一项富有挑战性的任务,旨在通过现代化技术手段解决传统旅游服务中存在的问题,提升用户体验,推动旅游行业朝着数字化、智能化的方向发展。这也是本研究的背景和动机所在。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
    Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  4. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  5. Jsp:JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
    JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:‘地址’(address)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
useridbigintNULL用户id
addressvarcharNULL地址
namevarcharNULL收货人
phonevarcharNULL电话
isdefaultvarcharNULL是否默认地址[是/否]

2:‘购物车表’(cart)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
tablenamevarcharNULL商品表名
useridbigintNULL用户id
goodidbigintNULL商品id
goodnamevarcharNULL商品名称
picturevarcharNULL图片
buynumberintNULL购买数量
pricefloatNULL单价
discountpricefloatNULL会员价

3:‘客服聊天表’(chat)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
useridbigintNULL用户id
adminidbigintNULL管理员id
asklongtextNULL提问
replylongtextNULL回复
isreplyintNULL是否回复

4:‘配置文件’(config)

字段名类型默认值列注释
idbigintNULL主键
namevarcharNULL配置参数名称
valuevarcharNULL配置参数值

5:‘旅游线路评论表’(discusslvyouxianlu)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
refidbigintNULL关联表id
useridbigintNULL用户id
contentlongtextNULL评论内容
replylongtextNULL回复内容

6:‘最新线路评论表’(discusszuixinxianlu)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
refidbigintNULL关联表id
useridbigintNULL用户id
contentlongtextNULL评论内容
replylongtextNULL回复内容

7:‘旅游线路’(lvyouxianlu)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
xianlumingchengvarcharNULL线路名称
xianlufenleivarcharNULL线路分类
fengmiantuvarcharNULL封面图
jingdianmingchengvarcharNULL景点名称
chufadivarcharNULL出发地
mudedivarcharNULL目的地
jiaotongfangshivarcharNULL交通方式
chuxingshijiandatetimeNULL出行时间
feiyongbaohanlongtextNULL费用包含
xingchengluxianlongtextNULL行程路线
clicktimedatetimeNULL最近点击时间
clicknumintNULL点击次数
pricefloatNULL价格

8:‘旅游资讯’(news)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
titlevarcharNULL标题
introductionlongtextNULL简介
picturevarcharNULL图片
contentlongtextNULL内容

9:‘订单’(orders)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
orderidvarcharNULL订单编号
tablenamevarcharNULL商品表名
useridbigintNULL用户id
goodidbigintNULL商品id
goodnamevarcharNULL商品名称
picturevarcharNULL商品图片
buynumberintNULL购买数量
pricefloatNULL价格/积分
discountpricefloatNULL折扣价格
totalfloatNULL总价格/总积分
discounttotalfloatNULL折扣总价格
typeintNULL支付类型
statusvarcharNULL状态
addressvarcharNULL地址

10:‘收藏表’(storeup)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
useridbigintNULL用户id
refidbigintNULL收藏id
tablenamevarcharNULL表名
namevarcharNULL收藏名称
picturevarcharNULL收藏图片

11:‘token表’(token)

字段名类型默认值列注释
idbigintNULL主键
useridbigintNULL用户id
usernamevarcharNULL用户名
tablenamevarcharNULL表名
rolevarcharNULL角色
tokenvarcharNULL密码
addtimetimestampNULL新增时间
expiratedtimetimestampNULL过期时间

12:‘用户表’(users)

字段名类型默认值列注释
idbigintNULL主键
usernamevarcharNULL用户名
passwordvarcharNULL密码
rolevarcharNULL角色
addtimetimestampNULL新增时间

13:‘线路分类’(xianlufenlei)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
xianlufenleivarcharNULL线路分类

14:‘用户’(yonghu)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
yonghumingvarcharNULL用户名
mimavarcharNULL密码
xingmingvarcharNULL姓名
touxiangvarcharNULL头像
xingbievarcharNULL性别
lianxidianhuavarcharNULL联系电话
moneyfloatNULL余额

15:‘最新线路’(zuixinxianlu)

字段名类型默认值列注释
idbigintNULL主键
addtimetimestampNULL创建时间
xianlumingchengvarcharNULL线路名称
xianlufenleivarcharNULL线路分类
fengmiantuvarcharNULL封面图
jingdianmingchengvarcharNULL景点名称
chufadivarcharNULL出发地
mudedivarcharNULL目的地
jiaotongfangshivarcharNULL交通方式
chuxingshijiandatetimeNULL出行时间
feiyongbaohanlongtextNULL费用包含
xingchengluxianlongtextNULL行程路线
pricefloatNULL价格

五、功能模块:

登录注册

1

用户管理

5

线路管理

7

旅游路线

9

最新线路

11

用户端首页轮播图管理

13

旅游咨询管理

15

订单管理

17

18

用户端首页

1

旅游路线

2

最新线路

3

旅游资讯

4

个人信息管理

5

个人收藏管理6

订单管理

7

景点详情

8

我的购物车

9

六、代码示例:


@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;

}
/**
通用的本地文件上传
@param multipartFile 文件对象@return 文件访问链接URL
 */
@PostMapping("/file")
public SimpleResponse uploadImg(@RequestParam("file") MultipartFile file) {
 // 文件后缀
 String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
 File savePathFile = new File(newTomcatFolder);
 if (!savePathFile.exists()) {
 // 若不存在该目录,则创建目录
 savePathFile.mkdir();
 }
 // 通过UUID生成唯一文件名
 String filename = UUID.randomUUID() + "." + suffix;
 try {
 // 将文件保存指定目录
 file.transferTo(new File(newTomcatFolder + filename));
 } catch (Exception e) {
 e.printStackTrace();
 return SimpleResponse.error("保存文件异常");
 }
 // 返回访问链接
 return SimpleResponse.success(newTomcatHost + filename);
}
/**用户登录
 */
@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<ManageDTO> 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);
}

七、项目总结:

之前在教材内容读书过程中开发设计技术专业知识,对研究过程的认知,对开发设计设计课程学习,及其如何有效开展系统的市场分析和设计。老师还选了更具有标志性管理方案系统来解读教学过程,课下安排工作使们进行练习。在这段时间,老师还应当掌握系统地完成和测试。应对餐厅点餐管理系统的开发,的脑海里的确有一个清晰的认知。在系统制做及配套文本文件撰写中,按照软件开发流程一步步做好本职工作。

从系统的角度看,依据餐厅点餐管理系统生产,其艰难在于功能清楚、系统构造设计、设计使用性能数据库系统、挑选核心技术进行系统功能等,这种都是自己的难题。针对这一艰难,实行了一些防范措施。当也不知道系统的功能时,在网上找到很多相似的系统,做好记录了一些系统的一般功能,并用了这一系统的高效功能的一部分。除此之外,在在网络上得到了很多关于系统设计的前提知识,包含系统模块划分、设计规范、数据库表的设计和创建,及其程序流程编码的专业技能知识,包含撰写与使用数据和信息加上、删掉和变更编码控制器。在系统序号进行相关功能后,认真的试了系统中所有功能,最后发现自己研发的系统符合规定,能接受。系统功能与系统剖析设计高度一致,系统质量稳定。为应对客户的实际操作不正确,还设有不恰当反馈机制,系统性能稳定。唯一的最大的缺点是系统数据报表的设计不健全,字段名称相匹配的引用类型不正确,一部分系统编码很多地方并没有注解,编码不足简易。

从文本文件的角度看,依据基于SpringBoot+Vue的旅游网站生产后,应叙述生产过程的需求,包含怎样进行数据分析报告、怎样进行系统设计及其系统功能的具体运作实际效果。在这期间,用了接近一个月的时间来做。要实现院校标准化的文档排版标准,多次在老师的建议下学习办公软件使用和排版设计设计。坚持就是收益。经过长时间的的撰写和优化,的文档终于完成。

总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性

八、源码获取:

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

链接点击直达:下载链接

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

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

相关文章

智能优化算法应用:基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于袋獾算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.袋獾算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Git 请输入一个提交信息以解释此合并的必要性

操作方法&#xff1a;按住Ctrl加下面的某个字母

Realme GT5Pro ROOT 解锁BL教程

Realme GT5Pro 解锁ROOT教程 前言&#xff1a; 本文解锁BL教程及深度测试APP来自Realme官方社区。流程已进行简化&#xff0c;工具由本人制作并提供&#xff0c;降低上手难度&#xff0c;傻瓜式操作&#xff08;工具长期免费更新&#xff09;。 正文&#xff1a; 准备活动&am…

达梦数据库dm8守护集群部署手册

环境说明 操作系统&#xff1a;liunx-centos7.6 服务器&#xff1a;3台虚拟机&#xff08;主备数据库各一台&#xff0c;监视器一台(可选)&#xff09; 达梦数据库版本&#xff1a;达梦V8 一、安装前准备工作 参考达梦官方文档&#xff1a;https://eco.dameng.com/documen…

(2)(2.4) TerraRanger Tower/Tower EVO(360度)

文章目录 前言 1 安装传感器并连接 2 通过地面站进行配置 3 参数说明 前言 TeraRanger Tower 可用于在 Loiter 和 AltHold 模式下进行目标规避。传感器的最大可用距离约为 4.5m。 TeraRanger Tower EVO 可用于在 Loiter 和 AltHold 模式下进行目标规避。传感器的最大可用…

智能优化算法应用:基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于法医调查算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.参考…

爱上 `grep`:小白也能用的命令行超能工具!

1. grep 简介 grep 是一款命令行工具&#xff0c;它的任务是在文件中搜索特定的文本模式。在 Windows 上&#xff0c;我们可以通过安装 Chocolatey 包管理器来安装 grep。 2. 在 Windows 上安装 grep 打开 Windows PowerShell 首先&#xff0c;我们需要确保你已经安装了 Cho…

学生护眼灯哪个牌子好?适合学生考研用的台灯推荐

不知道各位家长们有没有对孩子的视力健康关注过&#xff0c;如今中国近视的总人数接近6亿人口&#xff01;而我国儿童青少年近视比率更是超过了一半&#xff0c;达到了52.7%的近视率&#xff0c;也就是说每十个儿童青少年中就有五个是存在视力问题的。其中很大的原因就是长时间…

cache教程 3.HTTP服务器

上一节我们实现了单机版的缓存服务&#xff0c;但是我们的目标是分布式缓存。那么&#xff0c;我们就需要把缓存服务部署到多态机器节点上&#xff0c;对外提供访问接口。客户端就可以通过这些接口去实现缓存的增删改查。 分布式缓存需要实现节点间通信&#xff0c;而通信方法…

SQL Server 2017数据库window server服务器改名操作

在window服务器修改机器名重新加域后&#xff0c;需要执行下面的SQL语句修改数据库里面记录的机器名字&#xff0c;才能在修改后通过新名字连接数据库。 if serverproperty(servername) <> servername begin declare server sysname set server ser…

深入理解Dubbo-3.高级功能剖析和原理解析

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

Halcon读取图片

1.打开对话框读取单张图 dev_open_file_dialog 2.图像显示不全 解决方案&#xff1a; HOperatorSet.SetPart(HTuple windowHandle, HTuple row1, HTuple column1, HTuple row2, HTuple column2) windowHandle:窗体 HTuple row1, HTuple column1,&#xff1a;左上角的行列坐…

imazing正在查找最新的apple mobile device组件

​ Apple Mobile Device是macOS的一个组件&#xff0c;它允许您在Mac上与iOS设备进行无缝连接和通信。因此&#xff0c;无法直接在苹果设备上下载和安装Apple Mobile Device&#xff0c;需要借助管理工具进行下载安装后启动。 如果您需要与iOS设备进行通信和同步&#xff0c;…

前端canvas的基础使用

一、介绍 前端中的 Canvas 是一种用于在网页上绘制图形的 HTML 元素。它提供了一个可以通过 JavaScript 进行绘制的 2D 绘图环境。使用 Canvas&#xff0c;您可以绘制图形&#xff0c;包括线条、矩形、圆形、文本和图像。Canvas 为开发人员提供了灵活自由的绘图能力&#xff0…

转换NC或HDF数据时候转出数据无坐标信息的处理方法

有时候我们在转换NC或HDF数据时&#xff0c;有时候会出现没有坐标信息的情况&#xff01;如下图&#xff1a; 这种情况一般是原始数据将坐标信息存储在说明文件中以便后期做生成坐标信息的处理、或坐标存储的形式比较特殊&#xff0c;造成工具无法读取&#xff01;这种数据处理…

【华为数据之道学习笔记】1-2华为数字化转型与数据治理

传统企业通过制造先进的机器来提升生产效率&#xff0c;但是未来&#xff0c;如何结构性地提升服务和运营效率&#xff0c;如何用更低的成本获取更好的产品&#xff0c;成了时代性的问题。数字化转型归根结底就是要解决企业的两大问题&#xff1a;成本和效率&#xff0c;并围绕…

单点登录方案调研与实现

作用 在一个系统登录后&#xff0c;其他系统也能共享该登录状态&#xff0c;无需重新登录。 演进 cookie → session → token →单点登录 Cookie 可以实现浏览器和服务器状态的记录&#xff0c;但Cookie会出现存储体积过大和可以在前后端修改的问题 Session 为了解决Co…

Java 21 的虚拟线程:高性能并发应用的福音

Java 21 最重要的特性之一就是虚拟线程 (JEP 444)。这些轻量级的线程降低了编写、维护和观察高吞吐量并行应用所需的努力。 在讨论新特性之前&#xff0c;让我们先看一下当前的状态&#xff0c;以便更好地理解它试图解决什么问题以及带来了哪些好处。 平台线程 在引入虚拟线…

多线程(进阶一:锁策略)

一、乐观锁和悲观锁 二、轻量级锁和重量级锁 三、自旋锁和挂起等待锁 四、普通互斥锁和读写锁 五、公平锁和非公平锁 六、可重入锁和不可重入锁 七、synchronized和Linux的mutex锁的简单比较 八、synchronized的自适应 一、乐观锁和悲观锁 乐观锁&#xff1a;在加锁之前…

mybatis 的快速入门以及基于spring boot整合mybatis(一)

MyBatis基础 MyBatis是一款非常优秀的持久层框架&#xff0c;用于简化JDBC的开发 准备工作&#xff1a; 1&#xff0c;创建sprong boot工程&#xff0c;引入mybatis相关依赖2&#xff0c;准备数据库表User&#xff0c;实体类User3&#xff0c; 配置MyBatis&#xff08;在applic…