mybatis-flex與springBoot整合的實現(xiàn)示例
本片文章在springBoot3,jdk21下測試通過
注意官方網(wǎng)站為: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', '研發(fā)部'); INSERT INTO `dept` VALUES ('1002', '銷售部'); INSERT INTO `dept` VALUES ('1003', '財務(wù)部'); INSERT INTO `dept` VALUES ('1004', '人事部'); SET FOREIGN_KEY_CHECKS = 1;
2.導(dǎo)入坐標
<?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數(shù)據(jù)坐標 --> <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 功能時,項目中必須注入對應(yīng)實體類的 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 ""; /** * 是否忽略該字段,可能只是業(yè)務(wù)字段,而非數(shù)據(jù)庫對應(yīng)字段 */ boolean ignore() default false; /** * insert 的時候默認值,這個值會直接被拼接到 sql 而不通過參數(shù)設(shè)置 */ String onInsertValue() default ""; /** * update 的時候自動賦值,這個值會直接被拼接到 sql 而不通過參數(shù)設(shè)置 */ String onUpdateValue() default ""; /** * 是否是大字段,大字段 APT 不會生成到 DEFAULT_COLUMNS 里 */ boolean isLarge() default false; /** * 是否是邏輯刪除字段,一張表中只能存在 1 一個邏輯刪除字段 * 邏輯刪除的字段,被刪除時,會設(shè)置為 1,正常狀態(tài)為 0 */ boolean isLogicDelete() default false; /** * 是否為樂觀鎖字段,若是樂觀鎖字段的話,數(shù)據(jù)更新的時候會去檢測當前版本號,若更新成功的話會設(shè)置當前版本號 +1 * 只能用于數(shù)值的字段 */ 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.實現(xiàn)類接口
@Service @Transactional public class EmpServiceImpl extends ServiceImpl<EmpMapper,Emp> implements EmpService { }
4.controller層
這里和mybatis-plus一樣
@RestController @RequestMapping("/emp") public class EmpController { @Resource private 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.配置類
#設(shè)置數(shù)據(jù)源 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/study_test?characterEncoding=utf-8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=false username: root password: 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
到此這篇關(guān)于mybatis-flex與springBoot整合的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)mybatis-flex整合springBoot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MyBatis-Flex實現(xiàn)分頁查詢的示例代碼
- Mybatis-flex整合達夢數(shù)據(jù)庫的實現(xiàn)示例
- Spring Boot整合MyBatis-Flex全過程
- SpringBoot使用MyBatis-Flex實現(xiàn)靈活的數(shù)據(jù)庫訪問
- mybatis-flex實現(xiàn)鏈式操作的示例代碼
- mybatis-flex實現(xiàn)多數(shù)據(jù)源操作
- MyBatis-Flex實現(xiàn)多表聯(lián)查(自動映射)
- Springboot集成Mybatis-Flex的示例詳解
- MyBatis-Flex 邏輯刪除的用法小結(jié)
相關(guān)文章
idea?compile項目正常啟動項目的時候build失敗報“找不到符號”等問題及解決方案
這篇文章主要介紹了idea?compile項目正常,啟動項目的時候build失敗,報“找不到符號”等問題,這種問題屬于lombok編譯失敗導(dǎo)致,可能原因是依賴jar包沒有更新到最新版本,需要的朋友可以參考下2023-10-10IDEA?服務(wù)器熱部署圖文詳解(On?Update?action/On?frame?deactivation)
這篇文章主要介紹了IDEA?服務(wù)器熱部署詳解(On?Update?action/On?frame?deactivation),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03Java排序之Comparable和Comparator比較器詳解
這篇文章主要介紹了Java排序之Comparable和Comparator比較器詳解,Comparable<T>是內(nèi)部比較器,Comparator<T>是外部比較器,最推薦使用Comparator<T>接口排序,Comparator提供靜態(tài)方法很方便,推薦使用,需要的朋友可以參考下2024-01-01使用Java的方式模擬Flutter的Widget實現(xiàn)多層括號嵌套
這篇文章主要介紹了使用Java的方式模擬Flutter的Widget的實現(xiàn)多層括號嵌套問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07