激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java Fluent Mybatis實戰之構建項目與代碼生成篇上

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

2022-03-03 11:07劍客阿良_ALiang Java教程

Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內又以Mybatis用的多,基于mybatis上的增強框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強框架 fluent mybatis

簡述

偶然看到一篇關于阿里新orm框架的文章,好奇的點了進去。開發后端多年,看到這個還是有點興奮的。常用mysql的orm框架mybatis、jpa,到后來的優化框架mybatis-plus都是用過,他們或多或少都有優缺點吧。程序員本就是日常革新技術的職業,所以了解更多的框架絕對不會有錯誤。所以我嘗試著把自己學習該框架的過程,記錄下來,盡可能去掉一些項目工程中用不到的功能,展示一些實用有幫助的代碼。

 

特性

首先分享一下碼云上的項目鏈接:碼云地址

看一下官方給出的特性圖

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

給出對幾個特性乍一看還是很全面的,其中比較吸引我的是兩點。

1、從圖中給出的語法,和sql十分相近,不仔細看還以為是直接sql語句扔了上來。看上去就比較實用。

2、No xml&mapper,雖然mybatis-plus已經做到實用 IService接口實現大部分的sql操作

 

項目搭建

springboot搭建一項目的過程就不過多贅述了,這里說下我實用的springboot版本

  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.5.5</version>
      <relativePath/> <!-- lookup parent from repository -->
  </parent>

代碼結構如下:

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

maven依賴引入-fluent-mybatis

<properties>
  <fluent-mybatis.version>1.8.7</fluent-mybatis.version>
</properties>
<dependencies>
  <!-- 引入fluent-mybatis 運行依賴包, scope為compile -->
  <dependency>
      <groupId>com.github.atool</groupId>
      <artifactId>fluent-mybatis</artifactId>
      <version>${fluent-mybatis.version}</version>
  </dependency>
  <!-- 引入fluent-mybatis-processor, scope設置為provider 編譯需要,運行時不需要 -->
  <dependency>
      <groupId>com.github.atool</groupId>
      <artifactId>fluent-mybatis-processor</artifactId>
      <scope>provided</scope>
      <version>${fluent-mybatis.version}</version>
  </dependency>
</dependencies>

完整maven依賴如下

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.5.5</version>
      <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.hy</groupId>
  <artifactId>fluent-mybatis-project</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>fluent-mybatis-project</name>
  <description>Demo project for Spring Boot</description>
  <properties>
      <java.version>1.8</java.version>
      <fluent-mybatis.version>1.8.7</fluent-mybatis.version>
  </properties>
  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
          <scope>runtime</scope>
          <optional>true</optional>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-configuration-processor</artifactId>
          <optional>true</optional>
      </dependency>
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <optional>true</optional>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org</groupId>
          <artifactId>jaudiotagger</artifactId>
          <version>2.0.1</version>
      </dependency>
      <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>30.1.1-jre</version>
      </dependency>
      <dependency>
          <groupId>cn.hutool</groupId>
          <artifactId>hutool-all</artifactId>
          <version>5.5.2</version>
      </dependency>
      <!-- 引入fluent-mybatis 運行依賴包, scope為compile -->
      <dependency>
          <groupId>com.github.atool</groupId>
          <artifactId>fluent-mybatis</artifactId>
          <version>${fluent-mybatis.version}</version>
      </dependency>
      <!-- 引入fluent-mybatis-processor, scope設置為provider 編譯需要,運行時不需要 -->
      <dependency>
          <groupId>com.github.atool</groupId>
          <artifactId>fluent-mybatis-processor</artifactId>
          <scope>provided</scope>
          <version>${fluent-mybatis.version}</version>
      </dependency>
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.2.0</version>
      </dependency>

      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <scope>runtime</scope>
      </dependency>
  </dependencies>

  <build>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
              <configuration>
                  <excludes>
                      <exclude>
                          <groupId>org.projectlombok</groupId>
                          <artifactId>lombok</artifactId>
                      </exclude>
                  </excludes>
              </configuration>
          </plugin>
      </plugins>
  </build>

</project>

表構建

在數據庫創建一張測試表,表比較簡單,先試試看。sql如下:

CREATE TABLE `test_fluent_mybatis` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',
`name` varchar(255) DEFAULT NULL COMMENT '姓名',
`age` int DEFAULT NULL COMMENT '年齡',
`create_time` datetime DEFAULT NULL COMMENT '創建時間',
`del_flag` int DEFAULT NULL COMMENT '是否刪除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

代碼生成工具類

注意:放到測試代碼包中。結構如下圖:

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

代碼生成工具類代碼,先按照官方給的簡單樣例來,如下:

package com.hy.fmp;

import cn.org.atool.generator.FileGenerator;
import cn.org.atool.generator.annotation.Table;
import cn.org.atool.generator.annotation.Tables;
import org.junit.jupiter.api.Test;

public class EntityGeneratorDemo {
// 數據源 url
static final String url =
    "jdbc:mysql://192.168.0.16:3306/test?useUnicode=true&characterEncoding=utf8";
// 數據庫用戶名
static final String username = "root";
// 數據庫密碼
static final String password = "123456";

@Test
public void generate() throws Exception {
  // 引用配置類,build方法允許有多個配置類
  FileGenerator.build(Empty.class);
}

@Tables(
    // 設置數據庫連接信息
    url = url,
    username = username,
    password = password,
    // 設置entity類生成src目錄, 相對于 user.dir
    srcDir = "src/main/java",
    // 設置entity類的package值
    basePack = "com.hy.fmp.fluent",
    // 設置dao接口和實現的src目錄, 相對于 user.dir
    daoDir = "src/main/java",
    // 設置哪些表要生成Entity文件
    tables = {@Table(value = {"test_fluent_mybatis"})})
static class Empty { // 類名隨便取, 只是配置定義的一個載體
}
}

執行代碼生成工具,看看都生成了些什么。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

可以看到生成的包如下。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

解決類找不到問題

這里有個坑,看下面的截圖

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

其實官方給了解決方法,只是沒有對此說明。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

簡而言之就是你需要使用maven編譯一下,所以我們compile一下。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

編譯結束后我們可以在target中,找到報錯包位置中的編譯文件。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

之前報錯的類已經不再報錯了。完美。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

 

總結

OK,現在項目和表代碼都生成完成了,下一篇講一下簡單的操作。

文章鏈接:FluentMybatis 項目構建、代碼生成(下)

Github代碼鏈接:GitHub倉庫

如果本文對你有幫助,請點個贊支持一下吧。

Java Fluent Mybatis實戰之構建項目與代碼生成篇上

到此這篇關于Java Fluent Mybatis實戰之構建項目與代碼生成篇上的文章就介紹到這了,更多相關Java Fluent Mybatis內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://huyi-aliang.blog.csdn.net/article/details/120848199

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产网站黄 | 性欧美一区二区三区 | 国产色片 | 无遮挡一级毛片视频 | 手机黄色小视频 | 亚洲视频观看 | 国产美女视频一区 | 羞羞的动漫在线观看 | 在线观看视频毛片 | 美女很黄很黄免费的 | 久久里面有精品 | 日韩精品99久久久久久 | 国产成人在线免费看 | 亚洲一区二区三区精品在线观看 | 久久免费视频在线 | 免费黄色在线 | 黄色一级毛片免费看 | 欧美日韩免费在线观看视频 | 久久经典国产视频 | 国产精品一区二区在线 | 中文字幕在线看第二 | 久久综合婷婷 | 91久久国产露脸精品国产护士 | 免费91在线 | 精品国产一区二区三区四 | 日本娇小videos高潮 | 久久免费视频5 | 中文字幕极速在线观看 | 欧美视频一区二区三区 | 久久国产午夜 | 精品久久久久久久久亚洲 | 在线成人免费观看 | 天天草夜夜爽 | 成人三级黄色片 | 国产精品久久久网站 | 91国内精品久久久久免费影院 | 久草网在线 | 中文字幕在线永久 | 91美女视频在线观看 | av色在线观看| 国产午夜精品一区二区三区视频 |