西安做搭建网站/宣传广告怎么做吸引人

西安做搭建网站,宣传广告怎么做吸引人,做企业网站的公司,电商网站建设技术外包前后端微服务商城项目,手把手教学! 在Spring Boot中集成第三方框架,实际上是非常常见的一种做法。Spring Boot自带了很多开箱即用的功能,但在实际项目开发中,我们经常需要借助一些第三方框架来实现更为复杂的功能。比如…

前后端微服务商城项目,手把手教学!

在Spring Boot中集成第三方框架,实际上是非常常见的一种做法。Spring Boot自带了很多开箱即用的功能,但在实际项目开发中,我们经常需要借助一些第三方框架来实现更为复杂的功能。比如集成一个消息队列、缓存框架、第三方支付、日志框架等。这篇文章将以集成MyBatis Plus为例,深入探讨如何在Spring Boot项目中集成第三方框架并实现相关功能。

一、为什么选择MyBatis Plus

MyBatis Plus是基于MyBatis的增强工具,它简化了MyBatis的使用,减少了重复代码,提高了开发效率。MyBatis本身是一个灵活的ORM框架,但它的配置较为复杂,尤其是在写SQL时,经常需要编写大量的SQL语句。而MyBatis Plus通过自定义的条件构造器、内置的CRUD功能、自动生成SQL等功能,使得操作数据库变得更加简便。

二、集成MyBatis Plus

1. 添加依赖

在Spring Boot项目中,首先需要在pom.xml文件中添加MyBatis Plus的相关依赖。你可以通过以下依赖来引入MyBatis Plus。

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency>

如果你使用的是Gradle,依赖配置如下:

implementation 'com.baomidou:mybatis-plus-boot-starter:3.5.1'
2. 配置数据源

application.properties或者application.yml文件中,配置数据源。你需要配置数据库的连接信息。

spring.datasource.url=jdbc:mysql://localhost:3306/your_database
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.platform=mysql
spring.datasource.test-on-borrow=true
3. 启动类添加MyBatis Plus的注解

在Spring Boot的启动类中,添加@MapperScan注解扫描MyBatis的Mapper接口。

@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
4. 创建实体类和Mapper接口

MyBatis Plus的核心是实体类和Mapper接口。首先创建一个实体类,例如User

@Data
@TableName("user")
public class User {private Long id;private String username;private String email;private Integer age;
}

然后,创建对应的Mapper接口:

@Mapper
public interface UserMapper extends BaseMapper<User> {// 此处可以自定义方法
}

BaseMapper是MyBatis Plus提供的一个基础接口,提供了很多常用的数据库操作方法。

5. Service层调用

在Service层,注入UserMapper并进行相关数据库操作:

@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> listUsers() {return userMapper.selectList(null);}public boolean addUser(User user) {return userMapper.insert(user) > 0;}public boolean deleteUser(Long id) {return userMapper.deleteById(id) > 0;}
}
6. Controller层暴露接口

最后,在Controller层暴露API接口:

@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMappingpublic List<User> getUsers() {return userService.listUsers();}@PostMappingpublic boolean addUser(@RequestBody User user) {return userService.addUser(user);}@DeleteMapping("/{id}")public boolean deleteUser(@PathVariable Long id) {return userService.deleteUser(id);}
}

三、MyBatis Plus的高级功能

  1. 分页查询

    MyBatis Plus提供了非常简单的分页功能。只需要通过Page对象即可实现分页查询。

    Page<User> page = new Page<>(1, 10);  // 当前页、每页大小
    Page<User> userPage = userMapper.selectPage(page, null);
  2. 条件构造器

    MyBatis Plus提供了一个QueryWrapper,用于构造复杂的查询条件。比如:

    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("age", 25).like("username", "John");
    List<User> users = userMapper.selectList(queryWrapper);
  3. 自动填充字段

    MyBatis Plus支持自动填充字段的功能,常见于插入或更新操作中,可以自动填充创建时间、更新时间等字段。

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    在配置了自动填充功能后,MyBatis Plus会自动在插入和更新时填充这些字段。

  4. 逻辑删除

    MyBatis Plus支持逻辑删除,只需要在实体类中定义一个is_deleted字段,并使用@TableLogic注解。

    @TableLogic
    private Integer deleted;

    使用deleted字段来标识数据是否删除。

四、总结

集成MyBatis Plus后,你可以享受到很多便捷的功能,比如自动生成CRUD方法、条件构造器、分页查询等,极大提高了开发效率,减少了重复代码。通过这种集成方式,Spring Boot和MyBatis Plus的结合使得我们能够更加高效地开发出功能完善且结构清晰的项目。

希望这篇文章对你理解Spring Boot如何集成MyBatis Plus并实现相关功能有所帮助!

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

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

相关文章

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能

现场可以通过手机或者pad实时拍照上传到大屏幕的照片墙现场大屏电子照片墙功能&#xff0c;每个人都可以通过手机实时拍照上传到大屏幕上,同时还可以发布留言内容&#xff0c;屏幕上会同步滚动播放展示所有人的照片和留言。相比校传统的照片直播功能更加灵活方便&#xff0c;而…

项目管理工具Jira在营销工作管理中的应用与实践

本文由Atlassian全球白金合作伙伴-龙智编辑整理。 市场营销人员是维系组织团结的粘合剂。作为公司中最具协作精神的团队之一&#xff0c;他们确保每个人目标一致&#xff0c;并专注于客户真正的需求。他们擅长沟通协作&#xff0c;积极响应客户诉求及塑造品牌方向&#xff0c;…

基于Flask框架的食谱数据可视化分析系统的设计与实现

【Flask】基于Flask框架的食谱数据可视化分析系统的设计与实现 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 在当今数字化时代&#xff0c;信息可视化已成为一种高效的数据理解和传播手段。…

基于 DeepSeek + Gemeni 打造 AI+前端的多人聊天室

开源项目 botgroup.chat 介绍 AI 多人聊天室&#xff1a; 一个基于 React 和 Cloudflare Pages(免费一键部署) 的多人 AI 聊天应用&#xff0c;支持多个 AI 角色同时参与对话&#xff0c;提供类似群聊的交互体验。体验地址&#xff1a;https://botgroup.chat 开源仓库&#x…

详解单例模式、模板方法及项目和源码应用

大家好&#xff0c;我是此林。 设计模式为解决特定问题提供了标准化的方法。在项目中合理应用设计模式&#xff0c;可以避免重复解决相同类型的问题&#xff0c;使我们能够更加专注于具体的业务逻辑&#xff0c;减少重复劳动。设计模式在定义系统结构时通常考虑到未来的扩展。…

IOS UITextField 无法隐藏键盘问题

设置UITextField 键盘按钮返回键为“完成”&#xff0c;即return key 设置done .m代码设置代理 //设置代理协议 UITextFieldDelegate&#xff0c; self.mobileTextField.delegate self; ///点击完成键隐藏键盘 - (BOOL)textFieldShouldReturn:(UITextField *)textField{//取…

【深度学习】Unet的基础介绍

U-Net是一种用于图像分割的深度学习模型&#xff0c;特别适合医学影像和其他需要分割细节的任务。如图&#xff1a; Unet论文原文 为什么叫U-Net&#xff1f; U-Net的结构像字母“U”&#xff0c;所以得名。它的结构由两个主要部分组成&#xff1a; 下采样&#xff08;编码…

RT-Thread+STM32L475VET6实现定时器定时功能

文章目录 前言一、板载资源介绍二、具体步骤1.打开STM32CubeMX进行相关配置1.1 使用外部高速时钟&#xff0c;并修改时钟树1.2 打开定时器(定时器根据自己需求调整)1.3 打开串口1.4 生成工程 2. 配置定时器2.1 打开HWTIMER设备驱动2.2 声明定时器2.3将stm32l4xx_hal_msp.c中HAL…

链表-基础训练(二)链表 day14

两两交换链表中的节点 题目示意&#xff1a; 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 原先我的思路是图像上的思路&#xff0c;但是我感觉还是很复杂…

【Gin-Web】Bluebell社区项目梳理5:投票功能分析与实现

本文目录 一、投票功能投票流程实现代码redis投票 一、投票功能 投票流程 首先我们要明确&#xff0c;就是 谁&#xff08;哪个用户&#xff1a;userID&#xff09; 给 哪个帖子&#xff08;postID&#xff09; 投了 什么票&#xff08;赞成票or反对票&#xff09;。 赞成票…

vue-treeselect显示unknown的问题及解决

问题 解决办法 去node-modules包里面找到这个组件的源码&#xff0c;在它dist文件里面找到这个文件&#xff0c;然后搜索unknown&#xff0c;把它删掉就可以解决了。

MFC中CString的Format、与XML中的XML_SETTEXT格式化注意

1、在MFC中导入 "msxml6.dll"&#xff0c;并使用其中的XML_SETTEXT函数&#xff0c;此调用在进行格式化的时候&#xff0c;调用的还是CString.Format()函数&#xff01; 2、用double类型的数据&#xff0c;格式化整形数%d之前&#xff0c;必须将double强转为int&…

从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(一)

项目包含5个模块 1.首页 (聊天主页) 2.注册 3.登录 4.个人资料 5.设置主题 一、配置开发环境 建立项目文件夹 mkdir chat-project cd chat-project mkdir server && mkdir webcd server npm init cd web npm create vitelatest 创建前端项目时我们选择javascrip…

具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)

整合各亚专科医学领域知识能力的AI代理的开发与研究 一、引言 1.1 研究背景 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量,医疗领域也不例外。近年来,AI 在医疗行业的应用取得了显著进展,从医学影像诊断到疾病预测,从药物研发到个性化医疗,AI 技…

YOLO11 【四】 【DNF制作自己的数据集,切割视频以及labelimg 闪退问题】

一、问题labelimg 闪退 一点w打标 labelimg就闪退 **原因 &#xff1a; python 版本太高 ** 解决办法&#xff1a;单独创建一个虚拟环境用于打标 conda create -n labelimg python3.9 二、使用python脚本切割视频 # -*- coding: utf-8 -*- import cv2 import osdef video_…

[MDM 2024]Spatial-Temporal Large Language Model for Traffic Prediction

论文网址&#xff1a;[2401.10134] Spatial-Temporal Large Language Model for Traffic Prediction 论文代码&#xff1a;GitHub - ChenxiLiu-HNU/ST-LLM: Official implementation of the paper "Spatial-Temporal Large Language Model for Traffic Prediction" …

k2路由器登录校园网

教程1刷入Breed&#xff0c;并手动刷入Padavan固件&#xff1a;斐讯K1、K2、K2P 刷机、刷入Breed 辅助工具 | tb (tbvv.net) Padavan下载网址&#xff1a; 我用的是&#xff1a; Padavan 登录的网址是 192.168.123.1 Padavan配置教程&#xff1a; 先用网线连上校园网&#…

多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题

多源 BFS 是一种解决 边权为 1 的多源最短路问题 的高效算法。其核心思想是将所有源点视为一个“超级源点”&#xff0c;通过一次 BFS 遍历即可计算所有节点到最近源点的最短距离。以下从原理、实现和代码示例三个方面深入讲解&#xff1a; 目录 一、原理分析 1. 单源 BFS vs…

C++,设计模式,【工厂方法模式】

文章目录 如何用汽车生产线理解工厂方法模式?一、传统生产方式的困境二、工厂方法模式解决方案三、模式应用场景四、模式优势分析五、现实应用启示✅C++,设计模式,【目录篇】 如何用汽车生产线理解工厂方法模式? 某个早晨,某车企CEO看着会议室里堆积如面的新车订单皱起眉…

贪心算法

int a[1000], b5, c8; swap(b, c); // 交换操作 memset(a, 0, sizeof(a)); // 初始化为0或-1 引导问题 为一个小老鼠准备了M磅的猫粮&#xff0c;准备去和看守仓库的猫做交易&#xff0c;因为仓库里有小老鼠喜欢吃的五香豆&#xff0c;第i个房间有J[i] 磅的五香豆&#xf…