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

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

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

一、Mapper 接口注解

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

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

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é)果集的列到對(duì)象的屬性。雖然它們不是直接用于 SQL 操作,但通常在 @Select 注解中使用來(lái)定義結(jié)果集的映射。這里添加一個(gè)使用 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);  
}  
 
// 定義一個(gè) DTO 類  
public class UserDTO {  
    private int userId;  
    private String userName;  
    private String userEmail;  
 
    // getters and setters  
}

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

二、使用 MyBatis Mapper 接口的步驟

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

示例代碼

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);  
        }  
    }  
}

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

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

相關(guān)文章

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

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

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

    mybatis-plus分頁(yè)查詢total=0問(wèn)題及解決方案

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

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

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

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

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

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

    這篇文章主要給大家介紹了關(guān)于Spring Boot jar可執(zhí)行原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(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ā)者提供了強(qiáng)大、靈活的條件構(gòu)建工具,能夠大大簡(jiǎn)化數(shù)據(jù)庫(kù)操作的代碼,通過(guò)本文的介紹,讀者可以更加深入地理解這兩個(gè)條件構(gòu)造器的使用方法,并在實(shí)際項(xiàng)目中靈活應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • Java中的構(gòu)造方法this、super的用法詳解

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

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

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

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

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

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

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

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

最新評(píng)論

秀山| 乌审旗| 肥西县| 凉山| 墨玉县| 黎平县| 曲沃县| 绍兴市| 新兴县| 深州市| 台南市| 紫阳县| 米泉市| 巴林右旗| 赤城县| 吉林市| 太和县| 和平县| 旬邑县| 绥棱县| 定安县| 开原市| 唐山市| 盐山县| 井研县| 长汀县| 孙吴县| 井冈山市| 孝义市| 湟中县| 靖州| 五指山市| 嘉善县| 陆丰市| 当阳市| 安丘市| 南澳县| 航空| 长海县| 桂林市| 台中市|