mybatis-flex与springBoot整合

mybatis-flex基本使用

    • 1.测试sql
    • 2.导入坐标
    • 3.框架搭建
      • 1.pojo层
      • 2.mapper层
      • 3.service层
      • 4.controller层
      • 5.启动类
      • 6.配置类
      • 7.EmpMapper.xml
    • 4.启动测试

本片文章在springBoot3,jdk21下测试通过

注意官方网站为:https://mybatis-flex.com/
请点击:直达网站

1.测试sql

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 员工表
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp`  (`id` bigint NOT NULL,`ename` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,`dept_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;INSERT INTO `emp` VALUES (1, '乔峰', 10, '1001');
INSERT INTO `emp` VALUES (2, '段誉', 21, '1001');
INSERT INTO `emp` VALUES (3, '虚竹', 23, '1001');
INSERT INTO `emp` VALUES (4, '阿紫', 18, '1001');
INSERT INTO `emp` VALUES (5, '扫地僧', 85, '1002');
INSERT INTO `emp` VALUES (6, '李秋水', 33, '1002');
INSERT INTO `emp` VALUES (7, '鸠摩智', 50, '1002');
INSERT INTO `emp` VALUES (8, '天山童姥', 60, '1003');
INSERT INTO `emp` VALUES (9, '慕容博', 58, '1003');
INSERT INTO `emp` VALUES (10, '丁春秋', 71, '1005');SET FOREIGN_KEY_CHECKS = 1;-- 部门表
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept`  (`dept_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;INSERT INTO `dept` VALUES ('1001', '研发部');
INSERT INTO `dept` VALUES ('1002', '销售部');
INSERT INTO `dept` VALUES ('1003', '财务部');
INSERT INTO `dept` VALUES ('1004', '人事部');SET FOREIGN_KEY_CHECKS = 1;

2.导入坐标

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.andy</groupId><artifactId>myBatis-Flex_boot3</artifactId><version>1.0-SNAPSHOT</version><!-- 父坐标 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.1</version><relativePath/></parent><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- spring数据坐标 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mybatis-flex --><dependency><groupId>com.mybatis-flex</groupId><artifactId>mybatis-flex-spring-boot-starter</artifactId><version>1.7.6</version><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></exclusion></exclusions></dependency><!-- mybatis与spring合成 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency><dependency><groupId>com.mybatis-flex</groupId><artifactId>mybatis-flex-processor</artifactId><version>1.7.6</version><scope>provided</scope></dependency><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency></dependencies>
</project>

3.框架搭建

这里只搭建emp表的,dept表的框架各位博主可以自行尝试搭建

1.pojo层

1.flex同样也支持AR模式(Active Record),使用 Active Record 功能时,项目中必须注入对应实体类的 BaseMapper 对象。用过mybatis-plus的博主都知道这一点

2.使用方式与mybatis-plus相同,只需让 Entity 类继承 Model 即可

3.注解

  • @Table:与mybatis-plus的@TableName作用相同
  • @Id(keyType = KeyType.Auto):与mybatis-plus的 @TableId(value = “id”, type = IdType.AUTO)相同
  • @Column 用来对字段进行更多的配置源码如下:
public @interface Column {/*** 字段名称*/String value() default "";/*** 是否忽略该字段,可能只是业务字段,而非数据库对应字段*/boolean ignore() default false;/*** insert 的时候默认值,这个值会直接被拼接到 sql 而不通过参数设置*/String onInsertValue() default "";/*** update 的时候自动赋值,这个值会直接被拼接到 sql 而不通过参数设置*/String onUpdateValue() default "";/*** 是否是大字段,大字段 APT 不会生成到 DEFAULT_COLUMNS 里*/boolean isLarge() default false;/*** 是否是逻辑删除字段,一张表中只能存在 1 一个逻辑删除字段* 逻辑删除的字段,被删除时,会设置为 1,正常状态为 0*/boolean isLogicDelete() default false;/*** 是否为乐观锁字段,若是乐观锁字段的话,数据更新的时候会去检测当前版本号,若更新成功的话会设置当前版本号 +1* 只能用于数值的字段*/boolean version() default false;/*** 配置的 jdbcType*/JdbcType jdbcType() default JdbcType.UNDEFINED;/*** 自定义 TypeHandler*/Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class;}

4.pojo层代码

@Table(value = "emp")
public class Emp extends Model<Emp> {@Id(keyType = KeyType.Auto)private  Long id;private String ename;private Integer age;private String deptId;// getter/setter/toString...

2.mapper层

这里和mybatis-plus的mapper层一样

@Mapper
public interface EmpMapper extends BaseMapper<Emp> {}

3.service层

这里和mybatis-plus一样

1.service层接口

public interface EmpService extends IService<Emp> {}

2.实现类接口

@Service
@Transactional
public class EmpServiceImpl extends ServiceImpl<EmpMapper,Emp> implements EmpService {}

4.controller层

这里和mybatis-plus一样

@RestController
@RequestMapping("/emp")
public class EmpController {@Resourceprivate EmpService empService;@GetMapping("/findById")public Emp findById(@RequestParam("id") Long id){return empService.getById(id);}
}

5.启动类

@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

6.配置类

#设置数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/study_test?characterEncoding=utf-8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=falseusername: rootpassword: root

7.EmpMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.andy.mapper.EmpMapper"></mapper>

4.启动测试

测试连接:http://localhost:8080/emp/findById?id=1

在这里插入图片描述

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

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

相关文章

使用STM32和ESP8266构建智能家居网络

本文将介绍如何使用STM32微控制器和ESP8266 WiFi模块构建一个智能家居网络。我们将讨论智能家居网络的整体设计思路、硬件连接和软件开发。通过本文的指导和示例代码&#xff0c;读者将能够搭建一个智能家居系统&#xff0c;实现远程控制和数据监测。 一、智能家居网络的整体设…

面试题:你如何理解 System.out.println()?

文章目录 前言首先分析System源码&#xff1a;out源码分析println分析 前言 如果你能自己读懂System.out.println()&#xff0c;就真正了解了Java面向对象编程的含义。 面向对象编程即创建了对象&#xff0c;所有的事情让对象帮亲力亲为&#xff08;即对象调用方法&#xff09…

123基于matlab的差分优化算法优化极限学习机,DE-ELM

基于matlab的差分优化算法优化极限学习机&#xff0c;DE-ELM。输出分类识别结果和准确率。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 123差分优化算法极限学习机 (xiaohongshu.com)

深入了解 Vite:快速、简洁、高效的前端构建工具(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

包含自动轮播、点击切换、显示图片信息和页码方框显示码数的 HTML 和 JavaScript 示例:

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>轮播图</title><style>#carousel-conta…

FPGA高端项目:纯verilog的 10G-UDP 高速协议栈,提供7套工程源码和技术支持

目录 1、前言免责声明更新说明 2、相关方案推荐我这里已有的以太网方案本协议栈的千兆网UDP版本1G 千兆网 TCP-->服务器 方案1G 千兆网 TCP-->客户端 方案10G 万兆网 TCP-->服务器客户端 方案 3、该UDP协议栈性能4、详细设计方案设计架构框图网络调试助手GT资源使用GT…

java练习题之String方法运用

应用知识点&#xff1a;​​​​​​String类 1&#xff1a;(String 类)仔细阅读以下代码段&#xff1a; String s "hello"; String t"hello"; char[] c {h,e,l,l,o}; 2&#xff1a;下列选项输出结果为false 的语句是() System.out.println( s.euqals( t…

Leetcode2962. 统计最大元素出现至少 K 次的子数组

Every day a Leetcode 题目来源&#xff1a;2962. 统计最大元素出现至少 K 次的子数组 解法1&#xff1a;滑动窗口 算法如下&#xff1a; 设 mx max⁡(nums)。右端点 right 从左到右遍历 nums。遍历到元素 xnums[right] 时&#xff0c;如果 xmx&#xff0c;就把计数器 co…

Docker安装【学习Docker(十)】Docker SQLServer的安装与卸载、基本命令

文章目录 1. 安装SQL Server拉取镜像运行容器 2. 卸载SQL Server3. 开放端口4. 常用命令5. 使用Navicat Premium连接 1. 安装SQL Server 拉取镜像 sudo docker pull mcr.microsoft.com/mssql/server:2017-latest运行容器 创建挂载点目录 mkdir /home/sqlserver_data运行容器…

漏洞复现--天融信TOPSEC两处远程命令执行

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

【Nodejs】基于node http模块的博客demo代码实现

目录 package.json www.js db.js app.js routes/blog.js controllers/blog.js mysql.js responseModel.js 无开发&#xff0c;不安全。 这个demo项目实现了用Promise异步处理http的GET和POST请求&#xff0c;通过mysql的api实现了博客增删改查功能&#xff0c;但因没有…

【KingbaseES】实现MySql函数WEERDAY

CREATE OR REPLACE FUNCTION weekday(date_val date) RETURNS integer AS $$ BEGIN RETURN EXTRACT(ISODOW FROM date_val); END; $$ LANGUAGE plpgsql IMMUTABLE;

智邦国际ERP系统 SQL注入漏洞复现

0x01 产品简介 北京智邦国际软件技术有限公司的ERP系统是一种集成化的企业资源计划&#xff08;Enterprise Resource Planning&#xff0c;简称ERP&#xff09;解决方案&#xff0c;旨在帮助企业实现高效的运营管理和资源优化。 0x02 漏洞概述 智邦国际ERP系统 GetPersonalS…

鸿蒙原生应用/元服务开发-发布进度条类型通知

进度条通知也是常见的通知类型&#xff0c;主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板&#xff0c;发布通知应用设置好进度条模板的属性值&#xff0c;如模板名、模板数据&#xff0c;通过通知子系统发送到通知栏显示。 目前系统模板仅支持进度条模板&a…

USB 转 TTL线直接读取DS18B20

简介 使用USB转TTL线直接读取DS18B20 温度。 电路图 绘制图 实物图 软件 Download 1-Wire/iButton Drivers for Windows 操作 所有的线路连接好之后将 USB 转 TTL线接到PC上; 安装软件 Download 1-Wire/iButton Drivers for Windows 并打开 软件打开之后先选择串口后 …

自动驾驶状态观测1-坡度估计

背景 自动驾驶坡度对纵向的跟踪精度和体感都有一定程度的影响。行车场景虽然一般搭载了GPS和IMU设备&#xff0c;但pitch角一般不准&#xff0c;加速度也存在波动大的特点。泊车场景一般在室内地库&#xff0c;受GPS信号遮挡影响&#xff0c;一般无法获取高程和坡度。搭载昂贵…

“安全相伴 快乐同行”儿童安全教育主题活动

2023年12月30日在海南成美公益基金会的支持下&#xff0c;沈阳市爱梦成真公益发展中心联合庄河市大树互助志愿服务中心举办“2023-2024年度阳光亲人项目”——“安全相伴快乐同行”儿童安全教育主题活动&#xff0c;参与本次活动的领导及嘉宾有&#xff1a;庄河市青年志愿者协会…

计算机网络(2)

计算机网络&#xff08;2&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网&#xff08;2&#xff09;分组交换网中的时延、丢包和吞吐量时延丢包吞吐量总结 协议层次及其服务模型模型类型OSI模型分析TCP/IP模型分析 追溯历史 小程一言 我…

UE5 C++(十一)— 碰撞检测

文章目录 代理绑定BeginOverlap和EndOverlapHit事件的代理绑定碰撞设置 代理绑定BeginOverlap和EndOverlap 首先&#xff0c;创建自定义ActorC类 MyCustomActor 添加碰撞组件 #include "Components/BoxComponent.h"public:UPROPERTY(VisibleAnywhere, BlueprintRea…

Linux配置Acado

如果需要使用acado的matlab接口&#xff0c;请移步&#xff1a;Linux Matlab配置Acado 首先&#xff0c;安装必要的软件包&#xff1a; sudo apt-get install gcc g cmake git gnuplot doxygen graphviz在自定义目录下&#xff0c;下载源码 git clone https://github.com/ac…