亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

摘要

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

簡易用法

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

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

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

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

如果我們的DB中的一列名稱是support_os_version類型是VARCHAR,但是在Java代碼中對應(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();
}

定義類型映射

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

首先定義一個從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定義類型映射的簡易用法示例的詳細(xì)內(nèi)容,更多關(guān)于MyBatis annonation類型映射的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot?讀取yml文件的多種方式匯總

    SpringBoot?讀取yml文件的多種方式匯總

    這篇文章主要介紹了SpringBoot讀取yml文件的幾種方式,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java基于遞歸和循環(huán)兩種方式實現(xiàn)未知維度集合的笛卡爾積算法示例

    Java基于遞歸和循環(huán)兩種方式實現(xiàn)未知維度集合的笛卡爾積算法示例

    這篇文章主要介紹了Java基于遞歸和循環(huán)兩種方式實現(xiàn)未知維度集合的笛卡爾積算法,結(jié)合實例形式分析了Java使用遞歸與循環(huán)兩種方式實現(xiàn)未知維度集合的笛卡爾積相關(guān)概念、原理與操作技巧,需要的朋友可以參考下
    2017-12-12
  • Spring MVC 中 短信驗證碼功能的實現(xiàn)方法

    Spring MVC 中 短信驗證碼功能的實現(xiàn)方法

    短信驗證功能在各個網(wǎng)站應(yīng)用都非常廣泛,那么在springmvc中如何實現(xiàn)短信驗證碼功能呢?今天小編抽時間給大家介紹下Spring MVC 中 短信驗證碼功能的實現(xiàn)方法,一起看看吧
    2016-09-09
  • Java泛型類型通配符和C#對比分析

    Java泛型類型通配符和C#對比分析

    下面小編就為大家?guī)硪黄狫ava泛型類型通配符和C#對比分析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • SpringBoot?整合RabbitMq?自定義消息監(jiān)聽容器來實現(xiàn)消息批量處理

    SpringBoot?整合RabbitMq?自定義消息監(jiān)聽容器來實現(xiàn)消息批量處理

    Spring Boot中提供了默認(rèn)的監(jiān)聽器容器,但是有時候我們需要自定義監(jiān)聽器容器,來滿足一些特殊的需求,比如批量獲取數(shù)據(jù),這篇文章主要介紹了SpringBoot?整合RabbitMq?自定義消息監(jiān)聽容器來實現(xiàn)消息批量處理,需要的朋友可以參考下
    2023-04-04
  • maven打包時候修改包名稱帶上git版本號和打包時間方式

    maven打包時候修改包名稱帶上git版本號和打包時間方式

    這篇文章主要介紹了maven打包時候修改包名稱帶上git版本號和打包時間方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • java.lang.UnsatisfiedLinkError: %1 不是有效的Win32應(yīng)用程序錯誤解決

    java.lang.UnsatisfiedLinkError: %1 不是有效的Win32應(yīng)用程序錯誤解決

    這篇文章主要給大家介紹了關(guān)于java.lang.UnsatisfiedLinkError: %1 不是有效的Win32應(yīng)用程序錯誤的解決方法,文中介紹的非常詳細(xì),需要的朋友們可以參考學(xué)習(xí),下面來一起看看吧。
    2017-03-03
  • 圖解Eclipse j2ee開發(fā)環(huán)境的搭建過程

    圖解Eclipse j2ee開發(fā)環(huán)境的搭建過程

    這篇文章以圖文結(jié)合的方式介紹了Eclipse j2ee開發(fā)環(huán)境的搭建過程,內(nèi)容很詳細(xì),每一個步驟都有對應(yīng)的操作截圖,需要的朋友可以參考下
    2015-08-08
  • 識別率很高的java文字識別技術(shù)

    識別率很高的java文字識別技術(shù)

    這篇文章主要為大家詳細(xì)介紹了識別率很高的java文字識別技術(shù),親測,希望對大家有幫助,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 分享幾個寫簡潔java代碼的小技巧

    分享幾個寫簡潔java代碼的小技巧

    成為一個優(yōu)秀的Java程序員,有著良好的代碼編寫習(xí)慣是必不可少的,下面這篇文章主要給大家介紹了關(guān)于寫java代碼的小技巧,文中通過圖文以及實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02

最新評論