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

MyBatis實戰(zhàn)之Mapper注解的示例

 更新時間:2024年10月17日 08:32:50   作者:dazhong2012  
本文主要介紹了MyBatis實戰(zhàn)之Mapper注解的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、Mapper 接口注解

MyBatis 是一個流行的 Java 數(shù)據(jù)持久層框架,它允許使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects)映射成數(shù)據(jù)庫中的記錄。

在 MyBatis 中,Mapper 接口用于定義與數(shù)據(jù)庫交互的方法,而注解如 @Select、@Insert、@Update 和 @Delete 等則用于直接在接口方法上聲明 SQL 語句。
常用注解的使用示例

1. @Select

用于執(zhí)行 SQL 查詢操作。

import org.apache.ibatis.annotations.Select;  
 
public interface UserMapper {  
      
    @Select("SELECT * FROM users WHERE id = #{id}")  
    User getUserById(int id);  
}

2. @Insert

用于執(zhí)行 SQL 插入操作。

import org.apache.ibatis.annotations.Insert;  
 
public interface UserMapper {  
      
    @Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})")  
    void insertUser(User user);  
}

3. @Update

用于執(zhí)行 SQL 更新操作。

import org.apache.ibatis.annotations.Update;  
 
public interface UserMapper {  
      
    @Update("UPDATE users SET name=#{name}, email=#{email} WHERE id=#{id}")  
    void updateUser(User user);  
}

4. @Delete

用于執(zhí)行 SQL 刪除操作。

import org.apache.ibatis.annotations.Delete;  
 
public interface UserMapper {  
      
    @Delete("DELETE FROM users WHERE id=#{id}")  
    void deleteUserById(int id);  
}

5. @Results 和 @Result

用于映射結(jié)果集的列到對象的屬性。雖然它們不是直接用于 SQL 操作,但通常在 @Select 注解中使用來定義結(jié)果集的映射。這里添加一個使用 DTO 類型的示例。

import org.apache.ibatis.annotations.Result;  
import org.apache.ibatis.annotations.Results;  
import org.apache.ibatis.annotations.Select;  
 
public interface UserMapper {  
      
    @Select("SELECT id, name, email FROM users WHERE id = #{id}")  
    @Results({  
        @Result(property = "userId", column = "id"),  
        @Result(property = "userName", column = "name"),  
        @Result(property = "userEmail", column = "email")  
    })  
    UserDTO getUserByIdWithDTO(int id);  
}  
 
// 定義一個 DTO 類  
public class UserDTO {  
    private int userId;  
    private String userName;  
    private String userEmail;  
 
    // getters and setters  
}

在這個例子中,getUserByIdWithDTO 方法不僅執(zhí)行查詢操作,還使用 @Results 和 @Result 注解來將結(jié)果集的列映射到 UserDTO 對象的屬性。注意,DTO 類的屬性名(如 userId、userName 和 userEmail)可能與數(shù)據(jù)庫表的列名不同,這里通過 @Result 注解的 property 和 column 屬性來指定映射關(guān)系。

二、使用 MyBatis Mapper 接口的步驟

  • 定義 Mapper 接口:在接口中定義方法并使用注解來配置 SQL 語句。
  • 配置 MyBatis:在 MyBatis 配置文件中注冊 Mapper 接口(或使用 Java 配置類)。
  • 使用 SqlSessionFactory:通過 SqlSessionFactory 獲取 SqlSession,然后使用 SqlSession 獲取 Mapper 接口的實例。
  • 調(diào)用 Mapper 方法:通過 Mapper 接口的實例調(diào)用方法執(zhí)行數(shù)據(jù)庫操作。

示例代碼

import org.apache.ibatis.session.SqlSession;  
import org.apache.ibatis.session.SqlSessionFactory;  
  
public class MyBatisExample {  
  
    public static void main(String[] args) {  
        SqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();  
        try (SqlSession session = sqlSessionFactory.openSession()) {  
            UserMapper userMapper = session.getMapper(UserMapper.class);  
            UserDTO userDTO = userMapper.getUserByIdWithDTO(1);  
            System.out.println(userDTO);  
        }  
    }  
}

在這個示例中,MyBatisUtil 是一個工具類,用于獲取 SqlSessionFactory 實例。需要根據(jù) MyBatis 配置來實現(xiàn)這個工具類。通過這種方式,可以使用 MyBatis 的注解來簡化數(shù)據(jù)庫操作的配置,并使用 DTO 類來封裝查詢結(jié)果。

到此這篇關(guān)于MyBatis 實戰(zhàn)之 Mapper 注解的文章就介紹到這了,更多相關(guān)MyBatis 實戰(zhàn)之 Mapper 注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 獲取 jar包以外的資源操作

    Java 獲取 jar包以外的資源操作

    這篇文章主要介紹了Java 獲取 jar包以外的資源操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • mybatis-plus分頁查詢total=0問題及解決方案

    mybatis-plus分頁查詢total=0問題及解決方案

    這篇文章主要介紹了mybatis-plus分頁查詢total=0問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • 如何在32位Windows系統(tǒng)下安裝Java

    如何在32位Windows系統(tǒng)下安裝Java

    這篇文章主要介紹了如何在32位Windows系統(tǒng)下安裝Java,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼

    easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼

    這篇文章主要介紹了easyexcel讀取excel合并單元格數(shù)據(jù)的操作代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Spring Boot jar可執(zhí)行原理的徹底分析

    Spring Boot jar可執(zhí)行原理的徹底分析

    這篇文章主要給大家介紹了關(guān)于Spring Boot jar可執(zhí)行原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Mybatis-Plus的條件構(gòu)造器QueryWrapper & UpdateWrapper示例詳解

    Mybatis-Plus的條件構(gòu)造器QueryWrapper & UpdateWrapper示例詳解

    Mybatis-Plus的條件構(gòu)造器QueryWrapper和UpdateWrapper為開發(fā)者提供了強大、靈活的條件構(gòu)建工具,能夠大大簡化數(shù)據(jù)庫操作的代碼,通過本文的介紹,讀者可以更加深入地理解這兩個條件構(gòu)造器的使用方法,并在實際項目中靈活應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • Java中的構(gòu)造方法this、super的用法詳解

    Java中的構(gòu)造方法this、super的用法詳解

    這篇文章較詳細(xì)的給大家介紹了Java中的構(gòu)造方法this、super的用法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • 關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件

    關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件

    這篇文章主要介紹了關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • @Inject注解和@Named注解注入失敗

    @Inject注解和@Named注解注入失敗

    在學(xué)習(xí)Spring框架時,按照官網(wǎng)介紹的JSR-333標(biāo)準(zhǔn)注釋(依賴注入)操作,但運行時找不到bean并報錯,后發(fā)現(xiàn)是pom文件中版本不對,將版本降低后,問題解決,總結(jié)了個人經(jīng)驗,原來是不同版本的包名不同導(dǎo)致問題發(fā)生
    2026-05-05
  • springboot?整合?dubbo?的實現(xiàn)組聚合詳情

    springboot?整合?dubbo?的實現(xiàn)組聚合詳情

    這篇文章主要介紹了springboot整合dubbo的實現(xiàn)組聚合詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07

最新評論

怀集县| 阿拉善左旗| 慈溪市| 垣曲县| 吉木萨尔县| 岳普湖县| 会泽县| 绥宁县| 大新县| 手机| 新化县| 彭阳县| 奇台县| 晋宁县| 伽师县| 彝良县| 思南县| 宁阳县| 海门市| 房产| 微山县| 临海市| 深水埗区| 寿宁县| 平罗县| 新竹县| 慈溪市| 高淳县| 富顺县| 城步| 磐安县| 宣威市| 邢台市| 卢氏县| 古交市| 龙口市| 阳原县| 远安县| 吉木萨尔县| 崇明县| 伊春市|