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

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

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

1 關(guān)于SpringBoot

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

2 關(guān)于MyBatis

2.1 MyBatis概述

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

2.2 MyBatis核心思想

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

2.3 MyBatis使用流程

1.配置MyBatis環(huán)境
在pom.xml中添加相關(guān)依賴:MyBatis Framework 和 MySQL Driver
2.配置文件中配置數(shù)據(jù)庫的連接信息(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.編寫Dao層接口,在接口中定義操作數(shù)據(jù)庫的方法,在注解或者XML文件中實現(xiàn)具體的SQL語句。

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

5.使用

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

3 MyBatis配置SQL方式

3.1 基于注解方式

3.1.1 說明

基于注解方式省去了配置XML文件的編寫工作,并且可以很方便的完成一些 簡單的 CRUD操作,但是對于一些復雜的SQL語句使用起來會很冗余。

3.1.2 使用流程

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

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

3.2.2 使用流程

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

3.2.3 常用標簽

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

set標簽和if標簽:用于動態(tài)修改

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

sql標簽和include標簽:用于SQL語句的復用

      <!--1.重復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開發(fā)的文章就介紹到這了,更多相關(guān)Mybatis注解XML開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 正確終止線程的方法

    Java 正確終止線程的方法

    這篇文章主要介紹了Java 正確終止線程的方法,幫助大家更好的理解和學習java 多線程的相關(guān)知識,感興趣的朋友可以了解下
    2020-12-12
  • Spring注解之@Value詳解

    Spring注解之@Value詳解

    這篇文章主要介紹了Spring注解之@Value詳解,@Value可以修飾屬性、方法、參數(shù)、注釋類型,編譯器會將?@Value注解的信息保留在?.class?文件中,并且能被虛擬機讀取,需要的朋友可以參考下
    2024-01-01
  • Java中API的使用方法詳情

    Java中API的使用方法詳情

    這篇文章主要介紹了Java中API的使用方法詳情,指的就是?JDK?中提供的各種功能的?Java類,這些類將底層的實現(xiàn)封裝了起來,我們不需要關(guān)心這些類是如何實現(xiàn)的,只需要學習這些類如何使用即可,我們可以通過幫助文檔來學習這些API如何使用,需要的朋友可以參考下
    2022-04-04
  • spring boot admin 搭建詳解

    spring boot admin 搭建詳解

    本篇文章主要介紹了spring boot admin 搭建詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Spring Boot處理全局統(tǒng)一異常的兩種方法與區(qū)別

    Spring Boot處理全局統(tǒng)一異常的兩種方法與區(qū)別

    這篇文章主要給大家介紹了關(guān)于Spring Boot處理全局統(tǒng)一異常的兩種方法與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Jackson庫進行JSON?序列化時遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    Jackson庫進行JSON?序列化時遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    使用Jackson庫進行JSON序列化時遇到了無限遞歸(Infinite?Recursion)問題,這是因為兩個實體類ComPointQuotaEntity和?ComPointEntity之間存在雙向關(guān)聯(lián)point和pointQuota相互引用,本文給大家介紹解決方案,感興趣的朋友一起看看吧
    2025-03-03
  • Java設計模式中觀察者模式詳解

    Java設計模式中觀察者模式詳解

    觀察者模式是極其重要的一個設計模式,也是我?guī)啄觊_發(fā)過程中使用最多的設計模式,本文首先概述觀察者模式的基本概念和Demo實現(xiàn),接著是觀察者模式在Java和Spring中的應用,最后是對觀察者模式的應用場景和優(yōu)缺點進行總結(jié)
    2022-11-11
  • 通過Spring Boot配置動態(tài)數(shù)據(jù)源訪問多個數(shù)據(jù)庫的實現(xiàn)代碼

    通過Spring Boot配置動態(tài)數(shù)據(jù)源訪問多個數(shù)據(jù)庫的實現(xiàn)代碼

    這篇文章主要介紹了通過Spring Boot配置動態(tài)數(shù)據(jù)源訪問多個數(shù)據(jù)庫的實現(xiàn)代碼,需要的朋友可以參考下
    2018-03-03
  • Spring原生Rpc六種的正確打開方式實現(xiàn)示例

    Spring原生Rpc六種的正確打開方式實現(xiàn)示例

    這篇文章主要為大家展示了Spring原生Rpc六種的正確打開方式實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步早日升職加薪
    2022-02-02
  • 使用MDC快速查詢應用接口全部執(zhí)行日志

    使用MDC快速查詢應用接口全部執(zhí)行日志

    這篇文章主要為大家介紹了使用MDC快速查詢應用接口全部執(zhí)行日志的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01

最新評論