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

mybatis使用pgvector的實(shí)現(xiàn)示例

 更新時(shí)間:2026年01月26日 10:29:45   作者:2501_91537388  
本文主要介紹了mybatis定義和注冊(cè)VectorTypeHandler,并使用@TableName注解設(shè)置Entity類(lèi),其中autoResultMap屬性設(shè)置為true,這樣就可以實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)與查詢(xún),感興趣的可以了解一下

定義VectorTypeHandler

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.postgresql.util.PGobject;

import java.sql.*;

public class VectorTypeHandler extends BaseTypeHandler<float[]> {

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i,
                                    float[] parameter, JdbcType jdbcType) throws SQLException {
        // 將float數(shù)組轉(zhuǎn)換為PostgreSQL vector格式字符串
        PGobject vector = new PGobject();
        vector.setType("vector");
        vector.setValue(arrayToVectorString(parameter));
        ps.setObject(i,vector); ;
    }

    @Override
    public float[] getNullableResult(ResultSet rs, String columnName) throws SQLException {
        return vectorStringToArray(rs.getString(columnName));
    }

    @Override
    public float[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        return vectorStringToArray(rs.getString(columnIndex));
    }

    @Override
    public float[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        return vectorStringToArray(cs.getString(columnIndex));
    }

    private String arrayToVectorString(float[] array) {
        StringBuilder sb = new StringBuilder("[");
        for (int i = 0; i < array.length; i++) {
            if (i > 0) sb.append(",");
            sb.append(array[i]);
        }
        sb.append("]");
        return sb.toString();
    }

    private float[] vectorStringToArray(String vector) {
        if (vector == null || vector.isEmpty()) return null;
        String cleaned = vector.replace("[", "").replace("]", "");
        String[] parts = cleaned.split(",");
        float[] result = new float[parts.length];
        for (int i = 0; i < parts.length; i++) {
            result[i] = Float.parseFloat(parts[i].trim());
        }
        return result;
    }
}

注冊(cè)VectorTypeHandler

    @Bean
    public ConfigurationCustomizer mybatisConfigurationCustomizer() {
        return configuration -> {
            configuration.getTypeHandlerRegistry()
                    .register(float[].class, new VectorTypeHandler());
        };
    }

定義Entity

注意加上 autoResultMap = true ===>>> @TableName(value =“text_vector”, autoResultMap = true)

@TableName(value ="text_vector", autoResultMap = true)
@Data
public class TextVector implements Serializable {
    /**
     * 主鍵
     */
    @TableId
    private String id;

    /**
     * 文本內(nèi)容
     */
    private String content;

    /**
     * 向量值
     */
    @TableField(typeHandler = VectorTypeHandler.class)
    private float[] embedding;
}

總結(jié)

接下來(lái)你就可以進(jìn)行數(shù)據(jù)存儲(chǔ)與查詢(xún)了

到此這篇關(guān)于mybatis使用pgvector的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)mybatis使用pgvector內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • SpringBoot整合Mybatis,解決TypeAliases配置失敗的問(wèn)題

    SpringBoot整合Mybatis,解決TypeAliases配置失敗的問(wèn)題

    這篇文章主要介紹了SpringBoot整合Mybatis,解決TypeAliases配置失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java的web開(kāi)發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記

    Java的web開(kāi)發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記

    這篇文章主要介紹了Java的web開(kāi)發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記,SSH是指Struts和Spring以及Hibernate的框架搭配,需要的朋友可以參考下
    2015-12-12
  • Java正則表達(dá)式——group方法的使用

    Java正則表達(dá)式——group方法的使用

    這篇文章主要介紹了Java正則表達(dá)式group方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java中數(shù)組轉(zhuǎn)List的三種方法與對(duì)比分析

    Java中數(shù)組轉(zhuǎn)List的三種方法與對(duì)比分析

    這篇文章主要給大家介紹了關(guān)于Java中數(shù)組轉(zhuǎn)List的三種方法與對(duì)比分析的相關(guān)資料,分別介紹了最常見(jiàn)方式、數(shù)組轉(zhuǎn)為L(zhǎng)ist后,支持增刪改查的方式以及通過(guò)集合工具類(lèi)Collections.addAll()方法,需要的朋友可以參考下
    2018-07-07
  • JAVA純代碼導(dǎo)出PDF文件實(shí)現(xiàn)方式

    JAVA純代碼導(dǎo)出PDF文件實(shí)現(xiàn)方式

    本文介紹了作者通過(guò)突發(fā)奇想發(fā)布了生成PDF的博客,最初,作者通過(guò)將Word文件轉(zhuǎn)換為PDF文件實(shí)現(xiàn)導(dǎo)出PDF功能,但效果不盡如人意,后來(lái),作者嘗試直接生成PDF文件,并修復(fù)了生成PDF時(shí)出現(xiàn)的小瑕疵,通過(guò)導(dǎo)入依賴(lài)、下載接口和下載方法的實(shí)現(xiàn)
    2025-01-01
  • 單臺(tái)Spring Cloud Eureka升級(jí)到三臺(tái)Eureka高可用集群

    單臺(tái)Spring Cloud Eureka升級(jí)到三臺(tái)Eureka高可用集群

    今天小編就為大家分享一篇關(guān)于單臺(tái)Spring Cloud Eureka升級(jí)到三臺(tái)Eureka高可用集群,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 如何解決Maven出現(xiàn)Could not find artifact的問(wèn)題

    如何解決Maven出現(xiàn)Could not find artifact的問(wèn)題

    這篇文章主要介紹了如何解決Maven出現(xiàn)Could not find artifact的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java中IO流解析及代碼實(shí)例詳解

    Java中IO流解析及代碼實(shí)例詳解

    流是一種抽象概念,它代表了數(shù)據(jù)的無(wú)結(jié)構(gòu)化傳遞。。用來(lái)進(jìn)行輸入輸出操作的流就稱(chēng)為IO流。換句話說(shuō),IO流就是以流的方式進(jìn)行輸入輸出
    2021-08-08
  • SpringBoot 配置文件加密的步驟

    SpringBoot 配置文件加密的步驟

    這篇文章主要介紹了SpringBoot 配置文件加密的步驟,幫助大家更好的理解和學(xué)習(xí)使用springboot框架,感興趣的朋友可以了解下
    2021-03-03

最新評(píng)論

简阳市| 江北区| 灌南县| 长沙县| 桐梓县| 福州市| 自贡市| 沈阳市| 洛阳市| 固始县| 汉川市| 开平市| 河池市| 顺义区| 延吉市| 衢州市| 岱山县| 鄂托克前旗| 湘西| 衡水市| 调兵山市| 浦东新区| 原平市| 论坛| 乌恰县| 营山县| 高淳县| 革吉县| 绥芬河市| 宣化县| 吴川市| 阿拉善盟| 迭部县| 增城市| 芮城县| 靖西县| 阿城市| 双流县| 张掖市| 鹤山市| 门源|