欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis 高級用法和tk.mybatis使用示例詳解

 更新時間:2024年05月28日 15:03:26   作者:全棧程序員  
tkmybatis 是對底層 sql 進行了抽象封裝,不需要考慮 sql 怎么寫,只需要按照邏輯思維,遵循 tkmybatis 的語法即可實現(xiàn)數(shù)據(jù)庫操作,這篇文章主要介紹了Mybatis 高級用法和tk.mybatis使用,需要的朋友可以參考下

使用@SelectProvider、@InsertProvider、@UpdateProvider、@DeleteProvider

MyBatis 3.x 版本提供了以下4CRUD的高級注解。

@SelectProvider:用于構(gòu)建動態(tài)查詢SQL

@InsertProvider:用于構(gòu)建動態(tài)新增SQL。

@UpdateProvider:用于構(gòu)建動態(tài)更新SQL。

@DeleteProvider:用于構(gòu)建動態(tài)刪除SQL。

@SelectProvider

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Repeatable(SelectProvider.List.class)
public @interface SelectProvider {
  	// 用于指定獲取 sql 語句的指定類
    Class<?> type();
    // 指定類中要執(zhí)行獲取 sql 語句的方法
    String method();
}

使用例子

@Mapper
public interface TkUserMapper extends BaseMapper<TkUser> {
    @SelectProvider(type = TkUserMapperProvider.class, method = "selectById")
    List<TkUser> selectById(@Param("id") String id);
    class TkUserMapperProvider {
        public String selectById(@Param("id") String id) {
            SQL sql = new SQL();
            sql.SELECT("*");
            sql.FROM("TEST_USER");
            return sql.toString();
        }
    }
}

tk.mybatis

tkmybatis 是對底層 sql 進行了抽象封裝,不需要考慮 sql 怎么寫,只需要按照邏輯思維,遵循 tkmybatis 的語法即可實現(xiàn)數(shù)據(jù)庫操作。

引入依賴

<!-- mybatis 通用 mapper -->
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>4.3.0</version>
</dependency>

查詢實現(xiàn)

實體映射類

建立實體類用@Table注解標注映射表名稱注意字段表名稱大小寫問題。

@Table(name = "USER")
public class TkUser {
    private int id;
    private String username;
    private String password;
    private int gender;
    private int age;
    private int idcard;
    private int phone;
    // get set 省略
}

實體類規(guī)范

  • 表名默認使用類名,駝峰轉(zhuǎn)下劃線(只對大寫字母進行處理),如UserInfo默認對應的表名為user_info。
  • 表名可以使用@Table(name = “tableName”)進行指定,對不符合第一條默認規(guī)則的可以通過這種方式指定表名。
  • 字段默認和@Column一樣,都會作為表字段,表字段默認為Java對象的Field名字駝峰轉(zhuǎn)下劃線形式。
  • 可以使用@Column(name = “fieldName”)指定不符合第3條規(guī)則的字段名。
  • 使用@Transient注解可以忽略字段,添加該注解的字段不會作為表字段使用。
  • 建議一定是有一個@Id注解作為主鍵的字段,可以有多個@Id注解的字段作為聯(lián)合主鍵。

dao層

單表操作,只需要繼承 tk.mybatis 下的 Mapper 接口即可使用

在這里插入圖片描述

@Mapper
public interface TkUserMapper extends BaseMapper<TkUser> {
    @SelectProvider(type = TkUserMapperProvider.class, method = "selectById")
    List<TkUser> selectById(@Param("id") String id);
    class TkUserMapperProvider {
        public String selectById(@Param("id") String id) {
            SQL sql = new SQL();
            sql.SELECT("*");
            sql.FROM("TEST_USER");
            return sql.toString();
        }
    }
}

調(diào)用dao

@Autowired
private TkUserMapper tkUserMapper;
@Override
public void test1() {
    String id = "1";
    List<TkUser> tkUserList =  tkUserMapper.selectById(id);
    log.info("test");
}

到此這篇關(guān)于Mybatis 高級用法和tk.mybatis使用的文章就介紹到這了,更多相關(guān)Mybatis tk.mybatis使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入淺出Java中的字節(jié)流和字符流詳解

    深入淺出Java中的字節(jié)流和字符流詳解

    Java 中的輸入輸出(I/O)流主要分為字節(jié)流和字符流,這兩類流為開發(fā)者提供了高效的文件讀寫方式,也解決了不同編碼格式下的字符處理問題,本文將帶你深入了解字節(jié)流和字符流的區(qū)別、應用場景以及如何使用它們處理文件操作
    2024-12-12
  • 常用數(shù)字簽名算法RSA與DSA的Java程序內(nèi)實現(xiàn)示例

    常用數(shù)字簽名算法RSA與DSA的Java程序內(nèi)實現(xiàn)示例

    這篇文章主要介紹了常用數(shù)字簽名算法RSA與DSA的Java程序內(nèi)實現(xiàn)示例,一般來說DSA算法用于簽名的效率會比RSA要快,需要的朋友可以參考下
    2016-04-04
  • SpringSecurity?Web權(quán)限方案實現(xiàn)全過程

    SpringSecurity?Web權(quán)限方案實現(xiàn)全過程

    Spring Security是一個功能強大且高度可定制的身份驗證和授權(quán)框架,專門用于保護Java應用程序的Web集成,下面這篇文章主要給大家介紹了關(guān)于SpringSecurity?Web權(quán)限方案實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Java中的繼承詳情

    Java中的繼承詳情

    這篇文章主要介紹了Java中的繼承詳情,繼承是面向?qū)ο笕筇卣髦?,可以使得子類具有父類的屬性和方法,還可以在子類中重新定義,以及追加屬性和方法,下文介紹需要的朋友可以參考下
    2022-04-04
  • SpringBoot部署SSL證書(JKS格式)

    SpringBoot部署SSL證書(JKS格式)

    文將介紹如何在Spring Boot應用中部署SSL證書,以實現(xiàn)安全傳輸和保護數(shù)據(jù)隱私,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java????????HashMap遍歷方法匯總

    Java????????HashMap遍歷方法匯總

    這篇文章主要介紹了Java????????HashMap遍歷方法匯總,HashMap?的遍歷方法有很多種,不同的?JDK?版本有不同的寫法,下文關(guān)于其遍歷方法總結(jié)需要的小伙伴可以參考一下
    2022-05-05
  • java監(jiān)聽器的實現(xiàn)和原理詳解

    java監(jiān)聽器的實現(xiàn)和原理詳解

    這篇文章主要給大家介紹了關(guān)于java監(jiān)聽器實現(xiàn)和原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • SpringBoot創(chuàng)建定時任務的示例詳解

    SpringBoot創(chuàng)建定時任務的示例詳解

    在Spring Boot中創(chuàng)建定時任務,通常使用@Scheduled注解,這是Spring框架提供的一個功能,允許你按照固定的頻率(如每天、每小時、每分鐘等)執(zhí)行某個方法,本文給大家介紹了SpringBoot創(chuàng)建定時任務的示例,需要的朋友可以參考下
    2024-04-04
  • Java二叉樹中LCA問題解決方法兩則

    Java二叉樹中LCA問題解決方法兩則

    這篇文章主要介紹了Java二叉樹中LCA問題解決方法,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路
    2022-12-12
  • JAVA設計模式之解釋器模式詳解

    JAVA設計模式之解釋器模式詳解

    這篇文章主要介紹了JAVA設計模式之解釋器模式詳解,解釋器模式是類的行為模式,給定一個語言之后,解釋器模式可以定義出其文法的一種表示,并同時提供一個解釋器,需要的朋友可以參考下
    2015-04-04

最新評論