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

Mybatis基于注解與XML開(kāi)發(fā)使用流程

 更新時(shí)間:2023年07月28日 10:55:48   作者:學(xué)廢Java  
MyBatis是Java的持久化框架,目的是為了使操作數(shù)據(jù)庫(kù)更加方便、靈活、高效,可以通過(guò)Java注解和XML文件來(lái)映射Java對(duì)象和SQL語(yǔ)句,提供了非常靈活的SQL編寫(xiě)方式和動(dòng)態(tài)SQL語(yǔ)句的創(chuàng)建方式,這篇文章主要介紹了Mybatis基于注解與XML開(kāi)發(fā),需要的朋友可以參考下

1 關(guān)于SpringBoot

SpringBoot是一個(gè)基于Spring框架的快速開(kāi)發(fā)的腳手架,它能夠幫助我們開(kāi)發(fā)者快速搭建項(xiàng)目環(huán)境,并提供了一些建議的配置方式,降低了開(kāi)發(fā)者程序的開(kāi)發(fā)和部署難度。

2 關(guān)于MyBatis

2.1 MyBatis概述

MyBatis是Java的持久化框架,目的是為了使操作數(shù)據(jù)庫(kù)更加方便、靈活、高效??梢酝ㄟ^(guò)Java注解和XML文件來(lái)映射Java對(duì)象和SQL語(yǔ)句,提供了非常靈活的SQL編寫(xiě)方式和動(dòng)態(tài)SQL語(yǔ)句的創(chuàng)建方式,可以與Spring框架結(jié)合使用。

2.2 MyBatis核心思想

將Java對(duì)象和數(shù)據(jù)庫(kù)操作分離,通過(guò)注解和XML映射文件映射到數(shù)據(jù)庫(kù)的字段上,并提供相應(yīng)的API來(lái)操作數(shù)據(jù)庫(kù)??梢宰詣?dòng)將SQL語(yǔ)句轉(zhuǎn)為JDBC代碼,并根據(jù)指定的返回值類型生成對(duì)應(yīng)的結(jié)果提供給開(kāi)發(fā)者使用。

2.3 MyBatis使用流程

1.配置MyBatis環(huán)境
在pom.xml中添加相關(guān)依賴:MyBatis Framework 和 MySQL Driver
2.配置文件中配置數(shù)據(jù)庫(kù)的連接信息(application.properties)

     spring.datasource.url=jdbc:mysql://localhost:3306/blog?characterEncoding=utf8&serverTimezone=Asia/Shanghai
      spring.datasource.username=root
      spring.datasource.password=root

3.定義pojo類,和數(shù)據(jù)表做好映射關(guān)系

4.編寫(xiě)Dao層接口,在接口中定義操作數(shù)據(jù)庫(kù)的方法,在注解或者XML文件中實(shí)現(xiàn)具體的SQL語(yǔ)句。

      @Mapper
      public interface UserMapper{
          @Insert("INSERT INTO user VALUES(NULL,#{username})")
          int insert(User user);
      }

5.使用

       // 1.自動(dòng)裝配
       @Autowired
       private UserMapper userMapper
       // 2.調(diào)用方法
       userMpper.insert(...)

3 MyBatis配置SQL方式

3.1 基于注解方式

3.1.1 說(shuō)明

基于注解方式省去了配置XML文件的編寫(xiě)工作,并且可以很方便的完成一些 簡(jiǎn)單的 CRUD操作,但是對(duì)于一些復(fù)雜的SQL語(yǔ)句使用起來(lái)會(huì)很冗余。

3.1.2 使用流程

  • (maven工程)在pom.xml中添加MyBatis和MySQL相關(guān)的依賴
  • 在配置文件中(application.properties)配置數(shù)據(jù)庫(kù)的連接信息
  • 創(chuàng)建實(shí)體類,和數(shù)據(jù)庫(kù)中的表做好對(duì)應(yīng)關(guān)系
  • 配置Mapper接口,在接口中添加@Mapper注解,告訴底層為此接口創(chuàng)建實(shí)現(xiàn)類,在實(shí)現(xiàn)類中定義數(shù)據(jù)訪問(wèn)的邏輯,執(zhí)行與數(shù)據(jù)庫(kù)的會(huì)話
  • 在接口中定義方法,在方法上使用注解標(biāo)注SQL語(yǔ)句的類型,可以使用的注解有:@Insert、@Dlelete、@Update、@Select
  • 如果SQL語(yǔ)句中涉及到多個(gè)參數(shù),可以使用@Param注解給每個(gè)參數(shù)取名。
  • 自動(dòng)裝配并在應(yīng)用程序中使用即可
     @Autowired
      private XxxMapper xxxMapper;
      xxxMapper.接口中的方法(參數(shù)...);

3.1.3 常用注解

  • @Insert(“SQL”)
  • @Dlelete(“SQL”)
  • @Update(“SQL”)
  • @Select(“SQL”)

3.2 基于XML方式

3.2.1 相比注解優(yōu)勢(shì)

  • 更好的可讀性
  • XML文件具有良好的結(jié)構(gòu)和語(yǔ)義,可以使JAVA代碼和SQL語(yǔ)句徹底分離,便于管理和優(yōu)化。注解配置SQL語(yǔ)句可能使JAVA代碼變的冗長(zhǎng)。
  • 更好的復(fù)用性
  • 將SQL語(yǔ)句寫(xiě)入XML文件中,通過(guò) 和標(biāo)簽 將重復(fù)的SQL抽取并引用,從而提高了SQL語(yǔ)句的復(fù)用性。
  • 更好的支持動(dòng)態(tài)SQL
  • 動(dòng)態(tài)SQL語(yǔ)句是根據(jù)運(yùn)行時(shí)的參數(shù)來(lái)生成的SQL,復(fù)雜性較高,使用XML文件更加方便。

3.2.2 使用流程

  • 添加依賴:pom.xml
  • 配置數(shù)據(jù)源:application.propertis
  • 配置xml文件的掃描路徑:application.properties
  • 創(chuàng)建實(shí)體類,做好和數(shù)據(jù)表的對(duì)應(yīng)關(guān)系
  • 定義接口,添加@Mapper注解,并定義接口中的方法
  • 創(chuàng)建xml文件,使用標(biāo)簽配置SQL
  • 裝配使用
      @Autowired
      private XxxMapper xxxMapper;
    xxxMapper.接口方法(參數(shù)...);

3.2.3 常用標(biāo)簽

  • insert標(biāo)簽
  • delelte標(biāo)簽
  • update標(biāo)簽
  • select標(biāo)簽
    使用select標(biāo)簽需要指定 resultType 的屬性值
  • foreache標(biāo)簽:用于動(dòng)態(tài)刪除
      <delete id="xxx">
      	DELETE FROM xxx WHERE id in(
          	<foreache collection="對(duì)象類型" item="變量名" separator="分隔符">
          		#{變量名}
          	</foreache>
          )
      </delete>

set標(biāo)簽和if標(biāo)簽:用于動(dòng)態(tài)修改

      <update id="xxx">
      	UPDATE xxx 
          <set>
          	<if test="屬性名!=null">字段名=#{屬性名},</if>
              <if test="屬性名!=null">字段名=#{屬性名},</if>
              <if test="屬性名!=null">字段名=#{屬性名}</if>
          </set>
      </update>

sql標(biāo)簽和include標(biāo)簽:用于SQL語(yǔ)句的復(fù)用

      <!--1.重復(fù)SQL抽取-->
      <sql id="selectSql">
          SELECT * FROM xxx
      </sql>
      <select id="xxx" resultType="xxx">
          <include refid="selectSql"></include>
      </select>
      <select id="yyy" resultType="yyy">
          <include refid="selectSql"></include> WHERE id&gt;5
      </select>

到此這篇關(guān)于Mybatis基于注解與XML開(kāi)發(fā)的文章就介紹到這了,更多相關(guān)Mybatis注解XML開(kāi)發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis配置文件簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    mybatis配置文件簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了mybatis配置文件簡(jiǎn)介的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼

    Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼

    這篇文章主要介紹了Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼,涉及使用辛普森積分的例子,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Java集合中的LinkedHashMap使用解析

    Java集合中的LinkedHashMap使用解析

    這篇文章主要介紹了Java集合中的LinkedHashMap使用解析,LinkedHashMap是繼承于HashMap的,所以它的很多屬性和方法都是HashMap中的,那么它是怎么實(shí)現(xiàn)有序存儲(chǔ)的呢,需要的朋友可以參考下
    2023-12-12
  • JAVA時(shí)間類型轉(zhuǎn)換處理方式

    JAVA時(shí)間類型轉(zhuǎn)換處理方式

    本文詳細(xì)介紹了Java中LocalDate與Date類型之間的轉(zhuǎn)換方法,以及字符串格式化與解析技巧,同時(shí),還涵蓋了LocalDateTime和LocalTime與Date類型的轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • springboot集成shiro自定義登陸過(guò)濾器方法

    springboot集成shiro自定義登陸過(guò)濾器方法

    這篇文章主要介紹了springboot集成shiro自定義登陸過(guò)濾器方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 解決springboot錯(cuò)誤:找不到或無(wú)法加載主類(配置編碼或者M(jìn)aven)

    解決springboot錯(cuò)誤:找不到或無(wú)法加載主類(配置編碼或者M(jìn)aven)

    這篇文章主要介紹了解決springboot錯(cuò)誤:找不到或無(wú)法加載主類(配置編碼或者M(jìn)aven)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細(xì)教程

    一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)詳細(xì)教程

    使用SSM(Spring、SpringMVC和Mybatis)已經(jīng)有段時(shí)間了,項(xiàng)目在技術(shù)上已經(jīng)沒(méi)有什么難點(diǎn)了,基于現(xiàn)有的技術(shù)就可以實(shí)現(xiàn)想要的功能,下面這篇文章主要給大家介紹了關(guān)于整合SSM框架:Spring MVC + Spring + MyBatis的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • java之static關(guān)鍵字用法實(shí)例解析

    java之static關(guān)鍵字用法實(shí)例解析

    這篇文章主要介紹了java之static關(guān)鍵字用法實(shí)例解析,包括了static關(guān)鍵字的原理講解及用法分析,并附帶了實(shí)例說(shuō)明,需要的朋友可以參考下
    2014-09-09
  • SpringBoot實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)的示例代碼

    SpringBoot實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)的示例代碼

    在SpringBoot項(xiàng)目中簡(jiǎn)單使用定時(shí)任務(wù),不過(guò)由于要借助cron表達(dá)式且都提前定義好放在配置文件里,不能在項(xiàng)目運(yùn)行中動(dòng)態(tài)修改任務(wù)執(zhí)行時(shí)間,實(shí)在不太靈活?,F(xiàn)在我們就來(lái)實(shí)現(xiàn)可以動(dòng)態(tài)修改cron表達(dá)式的定時(shí)任務(wù),感興趣的可以了解一下
    2022-10-10
  • MyBatis一對(duì)一級(jí)聯(lián)更新問(wèn)題小結(jié)

    MyBatis一對(duì)一級(jí)聯(lián)更新問(wèn)題小結(jié)

    日常工作中經(jīng)常會(huì)涉及到一對(duì)一級(jí)聯(lián)更新的問(wèn)題,本文主要介紹了MyBatis一對(duì)一級(jí)聯(lián)更新問(wèn)題小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

太湖县| 陵水| 福海县| 越西县| 双鸭山市| 隆子县| 青铜峡市| 舟曲县| 威远县| 内黄县| 鄱阳县| 台湾省| 麦盖提县| 旌德县| 莫力| 定远县| 威信县| 高尔夫| 集贤县| 仙游县| 阳西县| 怀来县| 双江| 邯郸县| 靖宇县| 南安市| 黄石市| 铁岭县| 交口县| 泸定县| 华阴市| 河津市| 多伦县| 江华| 陇川县| 青海省| 乐业县| 嫩江县| 杭锦后旗| 新乡市| 金华市|