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

MyBatis使用annonation定義類(lèi)型映射的簡(jiǎn)易用法示例

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

摘要

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

簡(jiǎn)易用法

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

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

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

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

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

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

定義類(lèi)型映射

如果我們的support_os_version列是一個(gè)使用逗號(hào)分割的版本號(hào)里表,在Java中我們想映射到 String[] supportOSLevel, 可以通過(guò)定義 typeHandler 的方式進(jìn)行映射。

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

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)系的定義中指定這個(gè)類(lèi)作為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定義類(lèi)型映射的簡(jiǎn)易用法示例的詳細(xì)內(nèi)容,更多關(guān)于MyBatis annonation類(lèi)型映射的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot中的配置類(lèi)(@Configuration)

    SpringBoot中的配置類(lèi)(@Configuration)

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

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

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

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

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

    Kibana的安裝和配置全過(guò)程

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

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

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

    Java線程死鎖代碼詳解

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

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

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

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

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

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

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

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

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

最新評(píng)論

九龙城区| 龙井市| 克山县| 兰考县| 耒阳市| 谷城县| 山东省| 榆林市| 泉州市| 吉安县| 错那县| 雷州市| 阿合奇县| 鄂托克前旗| 青海省| 张家口市| 隆尧县| 武宣县| 莱芜市| 邓州市| 兴海县| 扶沟县| 广丰县| 西贡区| 县级市| 唐山市| 嘉善县| 安岳县| 新竹市| 拜城县| 平乡县| 青田县| 米脂县| 贺州市| 正镶白旗| 南汇区| 天长市| 河东区| 盐亭县| 茂名市| 鞍山市|