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

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

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

定義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ù)組轉換為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;
    }
}

注冊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;
}

總結

接下來你就可以進行數(shù)據(jù)存儲與查詢了

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

相關文章

  • 工廠方法模式_動力節(jié)點Java學院整理

    工廠方法模式_動力節(jié)點Java學院整理

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

    SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題

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

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

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

    Java正則表達式——group方法的使用

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

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

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

    JAVA純代碼導出PDF文件實現(xiàn)方式

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

    單臺Spring Cloud Eureka升級到三臺Eureka高可用集群

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

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

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

    Java中IO流解析及代碼實例詳解

    流是一種抽象概念,它代表了數(shù)據(jù)的無結構化傳遞。。用來進行輸入輸出操作的流就稱為IO流。換句話說,IO流就是以流的方式進行輸入輸出
    2021-08-08
  • SpringBoot 配置文件加密的步驟

    SpringBoot 配置文件加密的步驟

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

最新評論

潍坊市| 错那县| 恩施市| 湟源县| 庆元县| 镇雄县| 天津市| 顺平县| 盖州市| 忻州市| 富裕县| 鄂尔多斯市| 沅陵县| 龙山县| 福鼎市| 五莲县| 佳木斯市| 昆山市| 肃宁县| 北票市| 丰宁| 都兰县| 南木林县| 绿春县| 柘城县| 和顺县| 景泰县| 凤翔县| 金湖县| 始兴县| 太原市| 凌云县| 开鲁县| 咸丰县| 独山县| 商河县| 若羌县| 日照市| 神农架林区| 馆陶县| 双桥区|