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

MyBatis使用annonation定義類型映射的簡易用法示例

 更新時間:2023年09月24日 10:54:27   作者:channingbj  
這篇文章主要介紹了MyBatis使用annonation定義類型映射的簡易用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

摘要

介紹如何使用annonation的方式定義數(shù)據(jù)庫字段到Java成員變量直接的映射關(guān)系,以及定義數(shù)據(jù)庫表中的類型到Java類型的自定義轉(zhuǎn)換。關(guān)于如何配置MyBatis進行Java對象和Mysql表之間的映射可以參照 MyBatis 基本用法

簡易用法

下面是一個最基礎(chǔ)的映射關(guān)系配置:

public interface SimpleMapper {
    @Select("select url from testdb.MY_BATIS_TEST;")
    Set<Record> selectRecords();
}

在默認的配置中,mysql表的字段會映射到同名字的java成員變量,下面我們看如何設(shè)置映射到其他的變量,以及如何進行類型轉(zhuǎn)換

自定義映射關(guān)系

如果我們的DB中的一列名稱是support_os_version類型是VARCHAR,但是在Java代碼中對應(yīng)的變量是 String supportOSLevel,可以進行如下定義:

public interface SimpleMapper {
    @Select("select url from testdb.MY_BATIS_TEST;")
    @Results(value = {
            @Result(property = "support_os_version", column = "supportOSLevel"),
    })
    Set<Record> selectRecords();
}

定義類型映射

如果我們的support_os_version列是一個使用逗號分割的版本號里表,在Java中我們想映射到 String[] supportOSLevel, 可以通過定義 typeHandler 的方式進行映射。

首先定義一個從String到String[]的轉(zhuǎn)換類:

public class StringSplitHandler extends BaseTypeHandler<String[]> {
    private static final Joiner joiner = Joiner.on(",");
    @Override
    public void setNonNullParameter(PreparedStatement preparedStatement, int i, String[] strings, JdbcType jdbcType) throws SQLException {
        preparedStatement.setString(i, joiner.join(strings));
    }
    @Override
    public String[] getNullableResult(ResultSet resultSet, String columnName) throws SQLException {
        String data = resultSet.getString(columnName);
        if(StringUtils.isEmpty(data)) {
            return new String[0];
        } else {
            return data.split(",");
        }
    }
    @Override
    public String[] getNullableResult(ResultSet resultSet, int columnIndex) throws SQLException {
        String data = resultSet.getString(columnIndex);
        if(StringUtils.isEmpty(data)) {
            return new String[0];
        } else {
            return data.split(",");
        }
    }
    @Override
    public String[] getNullableResult(CallableStatement callableStatement, int columnIndex) throws SQLException {
        String data = callableStatement.getString(columnIndex);
        if(StringUtils.isEmpty(data)) {
            return new String[0];
        } else {
            return data.split(",");
        }
    }
}

然后在映射關(guān)系的定義中指定這個類作為typeHandler

public interface SimpleMapper {
    @Select("select url from testdb.MY_BATIS_TEST;")
    @Results(value = {
            @Result(property = "support_os_version", column = "supportOSLevel", typeHandler = StringSplitHandler.class),
    })
    Set<Record> selectRecords();
}

以上就是MyBatis使用annonation定義類型映射的簡易用法示例的詳細內(nèi)容,更多關(guān)于MyBatis annonation類型映射的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot中的配置類(@Configuration)

    SpringBoot中的配置類(@Configuration)

    這篇文章主要介紹了SpringBoot中的配置類(@Configuration),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 如何使用SpringBoot集成Kafka實現(xiàn)用戶數(shù)據(jù)變更后發(fā)送消息

    如何使用SpringBoot集成Kafka實現(xiàn)用戶數(shù)據(jù)變更后發(fā)送消息

    Spring Boot集成Kafka實現(xiàn)用戶數(shù)據(jù)變更后,向其他廠商發(fā)送消息,我們需要考慮配置Kafka連接、創(chuàng)建Kafka Producer發(fā)送消息、監(jiān)聽用戶數(shù)據(jù)變更事件,并將事件轉(zhuǎn)發(fā)到Kafka,本文分步驟給大家講解使用SpringBoot集成Kafka實現(xiàn)用戶數(shù)據(jù)變更后發(fā)送消息,感興趣的朋友一起看看吧
    2024-07-07
  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹

    這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之二叉樹,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Kibana的安裝和配置全過程

    Kibana的安裝和配置全過程

    Kibana是一個開源的數(shù)據(jù)分析和可視化平臺,它與Elasticsearch緊密集成,提供了一個直觀的Web界面,使您可以快速地搜索、分析和可視化數(shù)據(jù),在本文中,我們將介紹如何安裝和配置Kibana
    2024-12-12
  • springMVC如何對輸入數(shù)據(jù)校驗實現(xiàn)代碼

    springMVC如何對輸入數(shù)據(jù)校驗實現(xiàn)代碼

    數(shù)據(jù)的校驗是交互式網(wǎng)站一個不可或缺的功能,數(shù)據(jù)驗證分為客戶端驗證和服務(wù)器端驗證,這篇文章主要介紹了springMVC如何對輸入數(shù)據(jù)校驗,需要的朋友可以參考下
    2020-10-10
  • Java線程死鎖代碼詳解

    Java線程死鎖代碼詳解

    本篇文章主要介紹了Java線程死鎖代碼詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • 基于Ok+Rxjava實現(xiàn)斷點續(xù)傳下載

    基于Ok+Rxjava實現(xiàn)斷點續(xù)傳下載

    這篇文章主要為大家詳細介紹了基于Ok+Rxjava實現(xiàn)斷點續(xù)傳下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Java開發(fā)JUC交換器Exchanger使用詳解

    Java開發(fā)JUC交換器Exchanger使用詳解

    這篇文章主要為大家介紹了Java開發(fā)JUC交換器Exchanger使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • sprng和struts有什么區(qū)別?

    sprng和struts有什么區(qū)別?

    Spring和Struts都是近年來比較流行的框架,Struts主要用于表示層,Spring用于業(yè)務(wù)層,以及Hiberate主要用于持久層,
    2015-06-06
  • Java使用validation攔截非法提交的數(shù)據(jù)的方法實現(xiàn)

    Java使用validation攔截非法提交的數(shù)據(jù)的方法實現(xiàn)

    這篇文章主要介紹了Java使用validation攔截非法提交的數(shù)據(jù),包含依賴引入、實體類注解配置、控制器@Valid/@Validated使用規(guī)范,具有一定的參考價值,感興趣的可以了解一下
    2025-07-07

最新評論

丹寨县| 建水县| 克拉玛依市| 龙门县| 淅川县| 潮安县| 虎林市| 师宗县| 莱州市| 保定市| 开平市| 安溪县| 大新县| 尼勒克县| 曲沃县| 阜宁县| 思南县| 青海省| 辽阳市| 江都市| 丽水市| 湛江市| 道孚县| 应城市| 鄢陵县| 华坪县| 海晏县| 彩票| 南乐县| 砀山县| 凤凰县| 安多县| 九龙坡区| 合水县| 密云县| 行唐县| 曲水县| 玉山县| 望奎县| 吕梁市| 图木舒克市|