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

MyBatis映射器mapper快速入門(mén)教程

 更新時(shí)間:2022年09月27日 16:08:26   作者:搗蛋孩學(xué)編程  
使用mapper接口的方式,不用寫(xiě)接口實(shí)現(xiàn)類(lèi),直接完成數(shù)據(jù)庫(kù)操作,簡(jiǎn)單方便。使用mapper接口,采用的是面向接口編程的思想,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

通用mapper簡(jiǎn)介

通用 Mapper 是一個(gè)可以實(shí)現(xiàn)任意 MyBatis 通用方法的框架,項(xiàng)目提供了常規(guī)的增刪改查操作以及Example相關(guān)的單表操作,與mybatisplus相似,對(duì)mybatis制作增強(qiáng)不做修改。為什么要用通用mapper?我們這里列舉一下原生Mybatis的痛點(diǎn):

1、mapper.xml文件里有大量的sql,當(dāng)數(shù)據(jù)庫(kù)表字段變動(dòng),配置文件就要修改

2、需要自己實(shí)現(xiàn)sql分頁(yè),select * from table where . . . limit 1,3

自己手寫(xiě)分頁(yè),除了傳參page、pageSize,還需要返回條目總數(shù)count。

3、數(shù)據(jù)庫(kù)可移植性差:如果項(xiàng)目更換數(shù)據(jù)庫(kù),比如oracle-->mysql,mapper.xml中的

sql要重新寫(xiě),因?yàn)镺racle的PLSQL 和mysql 支持的函數(shù)是不同的。

4、生成的代碼量過(guò)大。

5、批量操作,批量插入,批量更新,需要自寫(xiě)。而這些,通過(guò)通用mapper就可以很輕松的解決了。

通用mapper快速入門(mén)(文檔)

在線(xiàn)官方文檔:https://gitee.com/free/Mapper/wikis/Home

官方的文檔中介紹了通用mapper的三種使用方式 ,純java使用方式、與Spring集成方式、與SpringBoot集成方式。我們這里給大家介紹的是與Spring集成方式,其他方式可自行學(xué)習(xí)。

添加依賴(lài)

在開(kāi)始配置前,先添加相關(guān)的依賴(lài)。

正常情況下,Spring 和 MyBatis 的集成環(huán)境中,應(yīng)該已經(jīng)存在下面的依賴(lài):

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>版本號(hào)</version>
</dependency>
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>版本號(hào)</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>版本號(hào)</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>版本號(hào)</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>版本號(hào)</version>
</dependency>

通用 Mapper 支持 MyBatis 3.2.4+

集成通用 Mapper 在上面的基礎(chǔ)上添加下面的依賴(lài):

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper</artifactId>
    <version>最新版本</version>
</dependency>

tk.mybatis:mapper 依賴(lài)包含了通用 Mapper 的基礎(chǔ)代碼以及和 Spring 集成必須的代碼

和Spring集成

和 Spring 進(jìn)行集成時(shí),分為 XML 和注解配置兩種方式,每種方式又有不同的配置方式。

這里提供了很多配置方式,使用時(shí)選擇一種改動(dòng)最小的方式即可!

XML 配置

1.使用 MapperScannerConfigurer

和通用 Mapper 以前版本一樣,可以直接使用 tk.mybatis 提供的 tk.mybatis.spring.mapper.MapperScannerConfigurer 進(jìn)行配置,這個(gè)配置和 MyBatis 官方提供的 org.mybatis.spring.mapper.MapperScannerConfigurer 區(qū)別只是第一層的包名,tkorg。所以使用這種方式時(shí),如果你項(xiàng)目已經(jīng)使用 org. 進(jìn)行了配置,只需要改成 tk. 即可。

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="掃描包名"/>
</bean>

如果你需要對(duì)通用 Mapper 進(jìn)行特殊配置,可以按下面的方式進(jìn)行配置:

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="tk.mybatis.mapper.mapper"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    <property name="properties">
        <value>
            參數(shù)名=值
            參數(shù)名2=值2
            ...
        </value>
    </property>
</bean>

可用配置的參數(shù)請(qǐng)看后續(xù)的配置文檔,配置參數(shù)時(shí)一行寫(xiě)一個(gè)值。

2.XML配置使用 Configuration

如果某些第三方也需要特殊的 MapperScannerConfigurer 時(shí),就不能用上面的方式進(jìn)行配置了,此時(shí)可以選擇下面這種方式,這種方式要求使用MyBatis (3.4.0+) 和 mybatis-spring (1.3.0+),配置方式如下:

<!--使用 Configuration 方式進(jìn)行配置-->
<bean id="mybatisConfig" class="tk.mybatis.mapper.session.Configuration">
    <!-- 配置通用 Mapper,有三種屬性注入方式 -->
    <property name="mapperProperties">
        <value>
            notEmpty=true
        </value>
    </property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configuration" ref="mybatisConfig"/>
</bean>
<!-- 不需要考慮下面這個(gè),注意這里是 org 的 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="tk.mybatis.mapper.configuration"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>

這里使用了 tk.mybatis.mapper.session.Configuration ,也就是不能通過(guò)讀取 mybatis-config.xml 進(jìn)行配置,上面這種配置更直接,使用 Spring setter 配置屬性更方便。當(dāng)需要配置通用 Mapper 時(shí),使用 mapperProperties 屬性配置即可,配置方式和前面的相同,一行一個(gè)配置即可。

配置了一個(gè) mybatisConfig 的 bean 后,在 SqlSessionFactoryBean 中注入即可。

后面的 MapperScannerConfigurer 只是為了說(shuō)明這里不需要使用 tk. 開(kāi)頭的類(lèi)進(jìn)行配置。

這種配置方式基本上和任何第三方都不會(huì)沖突,如果你遇到了第三方重寫(xiě) SqlSessionFactoryBean 的情況,就使用前一種方式配置即可。

實(shí)體類(lèi)映射

@Table(name = "tb_brand")
public class Brand implements Serializable {
    @Id
    private Integer id;
    private String name;
    private String image;
    private String letter;
    private Integer seq;
    //getter and setter ....
}

@Table 是指定實(shí)體類(lèi)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表 @Id 指的是主鍵映射。經(jīng)過(guò)上面簡(jiǎn)單的配置后,相 當(dāng)于就有了 MyBatis 中的關(guān)系映射了

創(chuàng)建Mapper接口

public interface BrandMapper extends Mapper<Brand> {
}

這里繼承了 tk.mybatis.mapper.common.Mapper 接口,在接口上指定了泛型類(lèi) 型 Brand 。當(dāng)你繼承了 Mapper 接口后,此時(shí)就已經(jīng)有了針對(duì) Brand 的大量方法,方 法如下:

這些方法中和 MBG 生成的大部分方法都一致,還有一部分 MBG 之外的常用方法。 基礎(chǔ)接口 select

List<T> select(T record)

根據(jù) T 對(duì)象中的屬性名稱(chēng)查詢(xún) , 類(lèi)似于 select * from table where t.name=#{name} and t.password = #{password}

T selectOne(T record)

根據(jù)實(shí)體中的屬性進(jìn)行查詢(xún),只能有一個(gè)返回值,有多個(gè)結(jié)果是拋出異常,查詢(xún)條件使用等號(hào)

T selectByPrimaryKey(Object key)

根據(jù)主鍵查詢(xún) 說(shuō)明:根據(jù)主鍵字段進(jìn)行查詢(xún),方法參數(shù)必須包含完整的主鍵屬性,查詢(xún)條 件使用等號(hào)

int selectCount(T record);

說(shuō)明:根據(jù)實(shí)體中的屬性查詢(xún)總數(shù),查詢(xún)條件使用等號(hào)

基礎(chǔ)接口 insert

int insert(T record);

說(shuō)明:保存一個(gè)實(shí)體, null 的屬性也會(huì)保存,不會(huì)使用數(shù)據(jù)庫(kù)默認(rèn)值

int insertSelective(T record);

說(shuō)明:保存一個(gè)實(shí)體, null 的屬性不會(huì)保存,會(huì)使用數(shù)據(jù)庫(kù)默認(rèn)值

基礎(chǔ)接口 Update

int updateByPrimaryKey(T record);

說(shuō)明:根據(jù)主鍵更新實(shí)體全部字段, null 值會(huì)被更新

int updateByPrimaryKeySelective(T record);

說(shuō)明:根據(jù)主鍵更新屬性不為 null 的值

基礎(chǔ)接口 delete

int delete(T record);

說(shuō)明:根據(jù)實(shí)體屬性作為條件進(jìn)行刪除,查詢(xún)條件使用等號(hào)

int deleteByPrimaryKey(Object key);

說(shuō)明:根據(jù)主鍵字段進(jìn)行刪除,方法參數(shù)必須包含完整的主鍵屬性

到此這篇關(guān)于MyBatis mapper快速入門(mén)教程的文章就介紹到這了,更多相關(guān)MyBatis mapper內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 注解@AliasFor使用方式及實(shí)際案例

    Java 注解@AliasFor使用方式及實(shí)際案例

    本文將全面介紹@AliasFor注解的使用方式、應(yīng)用場(chǎng)景、源碼解析以及實(shí)際案例,幫助你徹底掌握這個(gè)高級(jí)注解,感興趣的朋友一起看看吧
    2025-08-08
  • idea版本控制忽略.idea文件和.iml文件的問(wèn)題

    idea版本控制忽略.idea文件和.iml文件的問(wèn)題

    這篇文章主要介紹了idea版本控制忽略.idea文件和.iml文件,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 使用Lombok時(shí)@JsonIgnore注解失效解決方案

    使用Lombok時(shí)@JsonIgnore注解失效解決方案

    這篇文章主要為大家介紹了使用Lombok時(shí)@JsonIgnore注解失效問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • @DS注解的使用,動(dòng)態(tài)數(shù)據(jù)源,事務(wù)詳解

    @DS注解的使用,動(dòng)態(tài)數(shù)據(jù)源,事務(wù)詳解

    在項(xiàng)目中使用多數(shù)據(jù)源時(shí),可以借助苞米豆的dynamic-datasource-spring-boot-starter進(jìn)行配置,首先需引入相應(yīng)的jar包,并在application.yml中設(shè)置主從數(shù)據(jù)源,其中一般選擇master作為默認(rèn)數(shù)據(jù)源,在實(shí)現(xiàn)類(lèi)中通過(guò)@DS注解指定數(shù)據(jù)源
    2024-09-09
  • Java excel數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)示例詳解

    Java excel數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)示例詳解

    今天教大家如何使用Java將excel數(shù)據(jù)導(dǎo)入MySQL,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴呢很有幫助,需要的朋友可以參考下
    2022-08-08
  • Spring實(shí)現(xiàn)泛型注入的示例詳解

    Spring實(shí)現(xiàn)泛型注入的示例詳解

    Spring?4.0版本中更新了很多新功能,其中比較重要的一個(gè)就是對(duì)帶泛型的Bean進(jìn)行依賴(lài)注入的支持。本文將通過(guò)實(shí)例詳細(xì)講講Spring如何實(shí)現(xiàn)泛型注入,需要的可以參考一下
    2022-07-07
  • idea 隱藏target,iml等不需要展示的文件(推薦)

    idea 隱藏target,iml等不需要展示的文件(推薦)

    這篇文章主要介紹了idea 隱藏target,iml等不需要展示的文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java中的日期時(shí)間類(lèi)Date和SimpleDateFormat

    java中的日期時(shí)間類(lèi)Date和SimpleDateFormat

    這篇文章主要介紹了java中的日期時(shí)間類(lèi)Date和SimpleDateFormat,Date類(lèi)的對(duì)象在Java中代表的是當(dāng)前所在系統(tǒng)的此刻日期時(shí)間,說(shuō)白了就是你計(jì)算機(jī)上現(xiàn)實(shí)的時(shí)間,需要的朋友可以參考下
    2023-09-09
  • MyBatis/mybatis-plus項(xiàng)目打印SQL的方法實(shí)現(xiàn)

    MyBatis/mybatis-plus項(xiàng)目打印SQL的方法實(shí)現(xiàn)

    SpringBoot項(xiàng)目中,經(jīng)常需要打印SQL語(yǔ)句及其參數(shù),本文就來(lái)介紹一下MyBatis/mybatis-plus項(xiàng)目打印SQL的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Java在Excel中創(chuàng)建多級(jí)分組、折疊或展開(kāi)分組的實(shí)現(xiàn)

    Java在Excel中創(chuàng)建多級(jí)分組、折疊或展開(kāi)分組的實(shí)現(xiàn)

    這篇文章主要介紹了Java在Excel中創(chuàng)建多級(jí)分組、折疊或展開(kāi)分組的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論