SpringBoot3集成MyBatis詳解
引言
MyBatis是一款開(kāi)源的持久層框架,它極大地簡(jiǎn)化了與數(shù)據(jù)庫(kù)的交互流程。與類似Hibernate的ORM框架不同,MyBatis更具靈活性,允許開(kāi)發(fā)者直接使用SQL語(yǔ)句與數(shù)據(jù)庫(kù)進(jìn)行交互。Spring Boot和MyBatis分別是兩個(gè)功能強(qiáng)大的框架,它們的協(xié)同使用可以極大地簡(jiǎn)化數(shù)據(jù)訪問(wèn)層的開(kāi)發(fā),提高整體的開(kāi)發(fā)效率。本文將詳細(xì)介紹在Spring Boot項(xiàng)目中如何集成MyBatis,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的輕松訪問(wèn)和操作。
springboot3-mybatis.jpg
添加依賴
Spring Boot 3 發(fā)布后,Mybatis Starter相對(duì)應(yīng)的mybatis-spring-boot-starter
版本為3.x
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
添加配置文件
常用的mybatis配置如下所示:
mybatis: mapper-locations: classpath:mybatis/**/*Mapper.xml type-aliases-package: cn.xj.xjdoc.**.entity configuration: map-underscore-to-camel-case: true
參數(shù)說(shuō)明:
- mybatis.mapper-locations:指定MyBatis的Mapper XML文件的位置。
- mybatis.type-aliases-package:指定MyBatis的類型別名包,即包含實(shí)體類的包路徑,方便在xml配置文件中使用實(shí)體類時(shí)不用寫(xiě)包名。
- mybatis.configuration.map-underscore-to-camel-case:開(kāi)啟或關(guān)閉駝峰命名法的自動(dòng)映射功能。true表示開(kāi)啟,將數(shù)據(jù)庫(kù)字段的下劃線風(fēng)格(例如,user_name)自動(dòng)映射為Java實(shí)體類的駝峰命名風(fēng)格(例如,userName)。
創(chuàng)建實(shí)體類和Mapper接口
創(chuàng)建一個(gè)實(shí)體類,表示數(shù)據(jù)庫(kù)中的表,然后創(chuàng)建一個(gè)Mapper接口,用于定義數(shù)據(jù)庫(kù)操作的方法。示例:
實(shí)體類SysUser:
@Data public class SysUser { private String userName; private String account; }
Mapper接口SysUserMapper:
@Mapper public interface SysUserMapper { List<SysUser> listUser(); }
如果我們?cè)趩?dòng)類上使用了 @MapperScan
注解,就可以批量掃描 MyBatis 的 Mapper 接口所在的包,并將這些接口注冊(cè)為 MyBatis 的映射器。在這種情況下,Mapper 接口本身就不再需要使用 @Mapper
注解來(lái)明確標(biāo)識(shí)其為 MyBatis 的 Mapper 接口了。
@SpringBootApplication @MapperScan("cn.xj.xjdoc.**.mapper") public class XjdocApplication { public static void main(String[] args) { SpringApplication.run(XjdocApplication.class, args); } }
創(chuàng)建Mapper XML文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.xj.xjdoc.system.mapper.SysUserMapper"> <select id="listUser" resultType="SysUser"> select * from sys_user </select> </mapper>
最后,運(yùn)行你的Spring Boot應(yīng)用程序,并確保沒(méi)有錯(cuò)誤發(fā)生。訪問(wèn)相關(guān)端點(diǎn),測(cè)試數(shù)據(jù)庫(kù)操作是否正常。
總結(jié)
總體而言,Spring Boot集成MyBatis為開(kāi)發(fā)者提供了一套高效而又易于維護(hù)的數(shù)據(jù)庫(kù)訪問(wèn)方案。通過(guò)合理的配置和良好的代碼組織,我們能夠快速搭建出健壯可靠的數(shù)據(jù)訪問(wèn)層,為整個(gè)應(yīng)用的開(kāi)發(fā)打下堅(jiān)實(shí)基礎(chǔ)。
以上就是SpringBoot3集成MyBatis詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot3集成MyBatis的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java 轉(zhuǎn)型(向上或向下轉(zhuǎn)型)詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Java 轉(zhuǎn)型(向上或向下轉(zhuǎn)型)詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02java輕量級(jí)規(guī)則引擎easy-rules使用介紹
這篇文章主要介紹了java輕量級(jí)規(guī)則引擎easy-rules使用介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Java怎么獲取當(dāng)前時(shí)間、計(jì)算程序運(yùn)行時(shí)間源碼詳解(超詳細(xì)!)
有的時(shí)候,我們需要查看某一段代碼的性能如何,最為簡(jiǎn)單的方式,可以通過(guò)計(jì)算該段代碼執(zhí)行的耗時(shí),來(lái)進(jìn)行簡(jiǎn)單的判斷,這篇文章主要給大家介紹了關(guān)于Java怎么獲取當(dāng)前時(shí)間、計(jì)算程序運(yùn)行時(shí)間的相關(guān)資料,需要的朋友可以參考下2024-07-07Spring security如何重寫(xiě)Filter實(shí)現(xiàn)json登錄
這篇文章主要介紹了Spring security 如何重寫(xiě)Filter實(shí)現(xiàn)json登錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09SpringBoot Redisson 集成的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot Redisson 集成的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05mybatis 映射文件中if標(biāo)簽判斷字符串相等的兩種方式
這篇文章主要介紹了mybatis 映射文件中if標(biāo)簽判斷字符串相等的方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06使用IDEA創(chuàng)建SpringBoot項(xiàng)目的方法步驟
這篇文章主要介紹了使用IDEA創(chuàng)建SpringBoot項(xiàng)目的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05基于CopyOnWriteArrayList并發(fā)容器(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇基于CopyOnWriteArrayList并發(fā)容器(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11