最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis-flex與springBoot整合的實現(xiàn)示例

 更新時間:2024年01月08日 15:17:46   作者:我就是我352  
Mybatis-flex提供了簡單易用的API,開發(fā)者只需要簡單的配置即可使用,本文主要介紹了mybatis-flex與springBoot整合,具有一定的參考價值,感興趣的可以了解一下

本片文章在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.導入坐標

<?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)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯誤解決辦法

    java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list

    這篇文章主要介紹了java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Java 實現(xiàn)并發(fā)的幾種方式小結(jié)

    Java 實現(xiàn)并發(fā)的幾種方式小結(jié)

    這篇文章主要介紹了Java 實現(xiàn)并發(fā)的幾種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Java設(shè)計模式之備忘錄模式實現(xiàn)對象狀態(tài)的保存和恢復

    Java設(shè)計模式之備忘錄模式實現(xiàn)對象狀態(tài)的保存和恢復

    本文介紹Java設(shè)計模式之備忘錄模式,該模式可以實現(xiàn)對象狀態(tài)的保存和恢復。通過詳細講解備忘錄模式的原理、實現(xiàn)方法和應(yīng)用場景,幫助讀者深入理解該設(shè)計模式,并提供示例代碼和技巧,便于讀者實際應(yīng)用
    2023-04-04
  • JAVA中尋找最大的K個數(shù)解法

    JAVA中尋找最大的K個數(shù)解法

    尋找最大的K個數(shù),這個是面試中比較常見的一道題,網(wǎng)上也有很多例子,在這里是比較傳統(tǒng)的解法
    2014-04-04
  • Springboot中如何通過yml為實體類注入屬性

    Springboot中如何通過yml為實體類注入屬性

    這篇文章主要介紹了Springboot中如何通過yml為實體類注入屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Mybatis-plus常見的坑@TableField不生效問題

    Mybatis-plus常見的坑@TableField不生效問題

    這篇文章主要介紹了Mybatis-plus常見的坑@TableField不生效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java在控制臺輸出帶顏色字符的2種方式詳解

    Java在控制臺輸出帶顏色字符的2種方式詳解

    這篇文章主要給大家介紹了關(guān)于Java在控制臺輸出帶顏色字符的2種方式,文中通過實例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • Java中各種集合判空方法總結(jié)

    Java中各種集合判空方法總結(jié)

    最近接觸集合比較多,經(jīng)常對于集合是否為空做判斷,下面這篇文章主要給大家介紹了關(guān)于Java中各種集合判空方法總結(jié)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 介紹java中Pair(配對)

    介紹java中Pair(配對)

    這篇文章主要介紹了介紹java中Pair(配對),示例描述使用Pair類實現(xiàn)簡單Integer到String的映射,示例中g(shù)etKey方法返回key對象,getValue方法返回對應(yīng)值對象,需要的朋友可以參考下
    2023-03-03
  • 在SpringBoot: SpringBoot里面創(chuàng)建導出Excel的接口教程

    在SpringBoot: SpringBoot里面創(chuàng)建導出Excel的接口教程

    這篇文章主要介紹了在SpringBoot: SpringBoot里面創(chuàng)建導出Excel的接口教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10

最新評論

万年县| 彰化市| 北辰区| 桂平市| 英超| 边坝县| 新龙县| 山西省| 永宁县| 闽清县| 云和县| 新沂市| 桂平市| 历史| 尚志市| 手机| 阿拉善盟| 读书| 射阳县| 凉城县| 宜川县| 阿尔山市| 昂仁县| 广西| 什邡市| 灌云县| 武城县| 凤庆县| 望城县| 秀山| 改则县| 同心县| 读书| 磐安县| 黄石市| 连州市| 上高县| 富民县| 榆社县| 宁明县| 昌图县|