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.hqwc.cn/news/323088.html

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

相关文章

C# xml序列化和反序列化

问题 有的项目使用webservice返回结果是xml&#xff0c;需要进行xml序列化和反序列化 xml序列化相关特性 C#中&#xff0c;XML序列化相关的特性主要包括&#xff1a; XmlIgnore&#xff1a;这个特性可以用来指示序列化过程忽略一个属性或一个字段。当使用XmlIgnore特性时&a…

C++日期类的实现

前言&#xff1a;在类和对象比较熟悉的情况下&#xff0c;我们我们就可以开始制作日期表了&#xff0c;实现日期类所包含的知识点有构造函数&#xff0c;析构函数&#xff0c;函数重载&#xff0c;拷贝构造函数&#xff0c;运算符重载&#xff0c;const成员函数 1.日期类的加减…

【数据结构】——期末复习题库(6)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

线程池的shutdown和shutdownnow的区别

1、先说结论 shutdown ---- 不再接收新的任务&#xff0c;但是已经在执行中和队列中的任务会等待执行完成&#xff0c; 对workers中空闲的线程执行interrupt shutdownnow ---- 不再接收新的任务&#xff0c;清空队列的任务&#xff0c;对works中所有的线程执行interrupt&…

2024年您应该知道的 12个绝佳且免费的 AI 工具

2024年&#xff0c;人工智能的世界会继续让我们着迷。 这里收集了12 个免费的 AI 工具&#xff0c;其中大多数易于使用&#xff0c;还有一些复杂的。无论如何&#xff0c;AI 将会给我们的工作和生活带来巨大的改变&#xff0c;了解并掌握最适合自己的工作至关重要。 1、Adobe …

【springboot+vue项目(十一)】springboot整合EasyExcel

EasyExcel是阿里巴巴开源的一个Java库&#xff0c;用于操作Excel文件。它提供了简单易用的API&#xff0c;可以读取、写入和转换Excel文件&#xff0c;支持大量数据的导入和导出操作。 一、添加依赖&#xff08;版本3.2&#xff09; <!--easyexcel操作excel--> <depe…

BUG-由浏览器缩放引起PC端显示手机端视图

文章目录 来源解决 来源 启动Vue项目&#xff0c;用浏览器打开显示手机端视图&#xff0c;从vscode直接ctrl链接打开正常显示。 检查-未开启仿真&#xff0c;但仍显示错误。 解决 浏览器缩放问题。 修改为100%

宝宝洗衣机哪个牌子质量好?好用的小型洗衣机推荐

当婴儿的到来&#xff0c;确实会给家庭带来许多变化&#xff0c;就好比如对于宝宝相关衣物的清洗需求。对于新生儿及婴幼儿的衣服&#xff0c;一般都要给予特殊的照顾与清洗&#xff0c;以保证不含细菌及过敏原。尤其是刚刚出生的婴儿&#xff0c;这时候宝宝们的皮肤很是幼嫩。…

法二(命令行):YOLOv5打包.exe

0 准备工作 yolov5环境配置完毕安装pyinstaller&#xff0c;命令为 pip install pyinstallerps: 为了避免可能的错误&#xff0c;所有操作请在英文路径下进行。 1 修改detect_qt5.py或者相关文件 如果是使用我的检测界面的&#xff0c;应该是修改detect_qt5.py这个文件&#x…

全网最低价——组合预测模型全家桶

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测&#xff08;一&#xff09;数据集介绍和预处理-CSDN博客 风速预测&#xff08;二&#xff09;基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

wblogic中间件配置数据源

配置数据源 1.服务-数据源-配置-新建 2.单机选一般数据源 3.选择源名称、jndi名称、数据库类型 4.选择驱动 5.下一步 6.输入连接串信息 参考&#xff1a; 格式二&#xff1a;jdbc:oracle:thin:<host>:<port>:<SID> 数据库名称配置的sid 7.测试配置&#xff…

【AIGC科技展望】预测AIGC2025年的机会与挑战

2025年&#xff0c;AIGC的机会与挑战 在未来的五年里&#xff0c;AIGC&#xff08;AI Generated Content&#xff09;将会成为一个越来越重要的领域。但是&#xff0c;伴随着机会而来的是挑战。在这篇文章中&#xff0c;我们将一起探讨AIGC的机会与挑战&#xff0c;并预测2025…