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

Mybatis常用標簽及屬性小結(jié)

 更新時間:2023年12月15日 10:06:02   作者:JunSouth  
這篇文章主要介紹了Mybatis常用標簽及屬性小結(jié),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、常用標簽、動態(tài)Sql

select標簽:

    <select id="findUserById" parameterType="int" resultMap="userResultMap">
          <include refid="sqlMsg"><property name="id" /></include>
    </select>
   <sql id="sqlMsg"> SELECT * FROM User WHERE ID = #{id}</sql>
   <resultMap id="userResultMap" type="User">
     <id property="id" column="user_id" />
     <result property="username" column="user_name"/>
     <result property="password" column="hashed_password"/>
   </resultMap>

insert標簽:

    <insert id="addUser">
      insert into User (id,name)  values (#{id},#{name})
    </insert>

update標簽:

    <update id="updateUser">
      update User set
        username = #{username},
        password = #{password}
      where id = #{id}
    </update>

delete標簽:

    <delete id="deleteUser">
      delete from User where id = #{id}
    </delete>

if標簽:

    <select id="findUser" >
      SELECT * FROM User
      WHERE state = 0
      <if test="name != null and name!=''">
        AND name = #{name}
      </if>
    </select>

choose、when、otherwise(類似于switch)標簽:

    <select id="findUser" >
      SELECT * FROM User WHERE state = 0
      <choose>
        <when test="name != null">
           AND name like #{name}
        </when>
        <when test="age != null">
           AND age = #{age}
        </when>
        <otherwise>
           AND name like ''
        </otherwise>
      </choose>
    </select>

trim、where標簽:

    <select id="getUser" resultType="user">
     select * from user
         <trim prefix="where" prefixOverrides="and">
              <if test="lastName != null">
               name = #{name}
              </if>
              <if test="age != null">
               and age = #{age}
              </if>
              <if test="phone != null">
               and phone = #{phone}
              </if>
         </trim>
    </select>

foreach標簽:

    <select id="queryUsers" >
          select * from user where id in
         <foreach collection="array" item="item" open="(" separator="," close=")" index="index">
              #{item}
          </foreach>
    </select>

bind標簽:

<!--使用bind元素進行模糊查詢-->
    <select id="queryUserByName" resultType="com.MyUser" parameterType= "com.MyUser">
       select * from user
               <trim prefix="where" prefixOverrides="and">
                    <if test="name != null">]
                        <bind name="bindName" value="'%' + name + '%'"/>
                         name like #{bindName}
                    </if>
               </trim>
    </select>

selectKey標簽:

    <insert id="insert">
      <selectKey keyProperty="id" resultType="int" order="BEFORE">
              <!-- Oracle中用Sequence獲取主鍵 -->
            <if test="_databaseId == 'oracle'">
              select seq_users.nextval from dual
            </if>
               <!-- Mysql直接用sql查詢最大主鍵 -->
            <if test="_databaseId == 'mysql'">
              select(select max(u.id)+1 from t_user u)
            </if>
      </selectKey>
            insert into t_user values (#{id}, #{name})
    </insert>

typeAliases標簽

    <typeAliases>
        <typeAlias alias="myAuthor" type="com.bean.Author"/>
        <typeAlias alias="myUser" type="com.bean.User"/>
        <typeAlias alias="myCar" type="com.bean.Car"/>
        <typeAlias alias="myHouse" type="com.bean.House"/>
    </typeAliases>
    <select id="selectUser" lang="myUser">
      SELECT * FROM user
    </select>

二、常用標簽屬性

select標簽屬性:

    id           必選屬性,綁定Sql語句與Mapper接口中的方法,。
    parameterType 傳入?yún)?shù)的類全限定名或別名。MyBatis 可以通過類型處理器(TypeHandler)推斷出具體傳入語句的參數(shù),默認值為未設置(unset)。
    resultType   返回結(jié)果的類全限定名或別名。返回的是集合,則設置為集合包含的類型。
    resultMap    對外部 resultMap 的命名引用。resultType 和 resultMap 之間只能同時使用一個。
    flushCache   設為 true 后,只要語句被調(diào)用,會導致本地緩存和二級緩存被清空,默認值(對select):false。
    useCache     設為 true 后,將會導致本條語句的結(jié)果被二級緩存緩存起來,默認值:對 select 元素為 true。
    timeout          等待數(shù)據(jù)庫返回請求結(jié)果的秒數(shù)。默認值為未設置(unset)(依賴數(shù)據(jù)庫驅(qū)動)。
    fetchSize    給驅(qū)動的建議值,讓驅(qū)動程序每次批量返回的結(jié)果行數(shù)等于這個設置值。默認不設置(unset)(依賴驅(qū)動)。
    statementType 可選 STATEMENT、PREPARED、CALLABLE。讓 MyBatis 分別使用 Statement、PreparedStatement、CallableStatement,默認:PREPARED。
    resultSetType 可選 FORWARD_ONLY、SCROLL_SENSITIVE、SCROLL_INSENSITIVE 或 DEFAULT(等價于 unset),默認值為 unset (依賴數(shù)據(jù)庫驅(qū)動)。
    databaseId   如果配置了數(shù)據(jù)庫廠商標識(databaseIdProvider),MyBatis 會加載不帶 databaseId 屬性和帶有匹配當前數(shù)據(jù)庫 databaseId 屬性的所有語句;如果帶和不帶的語句都有,不帶的會被忽略。
    resultOrdered 僅針對嵌套結(jié)果 select 語句: 若為 true,將會假設包含了嵌套結(jié)果集或分組,返回一個主結(jié)果行時,不會產(chǎn)生對前面結(jié)果集的引用。獲取嵌套結(jié)果集的時不至于內(nèi)存不夠,默認:false。
    resultSets   僅適用于多結(jié)果集的情況。返回多個結(jié)果集并賦予每個結(jié)果集一個名稱,多個名稱之間以逗號分隔。

insert、update、delete標簽屬性:

    id              必選屬性,綁定Sql語句與Mapper接口中的方法,。
    parameterType    傳入?yún)?shù)的類全限定名或別名。MyBatis 可以通過類型處理器(TypeHandler)推斷出具體傳入語句的參數(shù),默認值為未設置(unset)。
    flushCache      設為 true 后,只要語句被調(diào)用,會導致本地緩存和二級緩存被清空,默認值:(對 insert、update 和 delete 語句)true。
    timeout             等待數(shù)據(jù)庫返回請求結(jié)果的秒數(shù)。默認值為未設置(unset)(依賴數(shù)據(jù)庫驅(qū)動)。
    statementType    可選 STATEMENT、PREPARED、CALLABLE。讓 MyBatis 分別使用 Statement、PreparedStatement、CallableStatement,默認:PREPARED。
    databaseId      如果配置了數(shù)據(jù)庫廠商標識(databaseIdProvider),MyBatis 會加載不帶 databaseId 屬性和帶有匹配當前數(shù)據(jù)庫 databaseId 屬性的所有語句;如果帶和不帶的語句都有,不帶的會被忽略。
    useGeneratedKeys (僅insert、update)會令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法來取出由數(shù)據(jù)庫內(nèi)部生成的主鍵,默認值:false。
    keyProperty         (僅insert、update)指定能夠唯一識別對象的屬性,用 getGeneratedKeys 的返回值或 insert 語句的 selectKey 子元素設置它的值,默認:未設置(unset)??捎枚禾柗指舳鄠€屬性名。
    keyColumn       (僅insert、update)設置生成鍵值在表中的列名,當主鍵列不是表中的第一列的時候,必須設置。如果生成列不止一個,可用逗號分隔多個屬性名。

trim標簽屬性:

 prefix          拼接前綴。
    suffix          拼接后綴。
    prefixOverrides     去除sql語句前面的關(guān)鍵字或者字符。
    suffixOverrides     去除sql語句后面的關(guān)鍵字或者字符。

foreach標簽屬性:

    collection  表示迭代集合的名稱,可以使用@Param注解指定。
    item        必選參數(shù),集合中元素迭代時的別名。
    index       在list和數(shù)組中,index是元素的序號,在map中,index是元素的key。
    open        foreach代碼的開始符號,一般是(和close=")"合用。
    close       foreach代碼的關(guān)閉符號,一般是)和open="("合用。
    separator   元素之間的分隔符,separator=","會自動在元素中間用“,“。

selectKey標簽屬性:

    keyProperty    返回目標結(jié)果的key。
    resultType     結(jié)果的類型。
    order          設置為BEFORE或AFTER,設置為BEFORE,會先選擇主鍵設置keyProperty,然后執(zhí)行插入語句;設為AFTER,先執(zhí)行插入語句,然后設置selectKey元素。
    statementType  和前面的相同,MyBatis 支持 STATEMENT、PREPARED、CALLABLE語句的映射類型,分別代表PreparedStatement、CallableStatement 類型。

到此這篇關(guān)于Mybatis常用標簽及屬性的文章就介紹到這了,更多相關(guān)Mybatis常用標簽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java項目中防止SQL注入的四種方案總結(jié)

    Java項目中防止SQL注入的四種方案總結(jié)

    SQL注入是一種代碼注入技術(shù),通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執(zhí)行惡意的SQL命令,下面我們就來看看如何在項目中防止SQL注入吧
    2023-10-10
  • 老生常談java數(shù)組中的常見異常

    老生常談java數(shù)組中的常見異常

    數(shù)組是用來存儲一系列數(shù)據(jù),但它往往被認為是一系列相同類型的變量,異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,接下來讓我們詳細的了解吧
    2022-03-03
  • SpringBoot集成Liquibase的詳細步驟

    SpringBoot集成Liquibase的詳細步驟

    Liquibase 是一個強大的數(shù)據(jù)庫版本控制工具,能夠與 Spring Boot
    無縫集成,以簡化數(shù)據(jù)庫遷移和管理的過程,以下是從開始集成到最終運行的詳細步驟,需要的朋友可以參考下
    2024-12-12
  • spring boot整合spring-kafka實現(xiàn)發(fā)送接收消息實例代碼

    spring boot整合spring-kafka實現(xiàn)發(fā)送接收消息實例代碼

    這篇文章主要給大家介紹了關(guān)于spring-boot整合spring-kafka實現(xiàn)發(fā)送接收消息的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來看看吧。
    2017-06-06
  • Java全面細致講解Wrapper的使用

    Java全面細致講解Wrapper的使用

    在封裝中有一種特殊的類,能夠把基本的數(shù)據(jù)類型進行轉(zhuǎn)換來方便實際的使用。我們在之前提到的一些數(shù)據(jù)類型,最明顯的特征是所有字母為小寫狀態(tài),那么經(jīng)過Wrapper的包裝后,首字母就變成了大寫。下面我們就這種特殊的封裝類Wrapper的使用
    2022-05-05
  • Java的Flowable工作流之加簽轉(zhuǎn)簽詳解

    Java的Flowable工作流之加簽轉(zhuǎn)簽詳解

    這篇文章主要介紹了Java的Flowable工作流之加簽轉(zhuǎn)簽詳解,Flowable是一個開源的工作流引擎,它提供了一套強大的工具和功能,用于設計、執(zhí)行和管理各種類型的工作流程,需要的朋友可以參考下
    2023-11-11
  • Flink支持哪些數(shù)據(jù)類型?

    Flink支持哪些數(shù)據(jù)類型?

    Apache Flink 以其獨特的方式來處理數(shù)據(jù)類型以及序列化,這種方式包括它自身的類型描述符、泛型類型提取以及類型序列化框架.本文檔描述了它們背后的概念和基本原理,需要的朋友可以參考下
    2021-06-06
  • Struts2 Result 參數(shù)詳解

    Struts2 Result 參數(shù)詳解

    這篇文章主要講解Struts2 Result的參數(shù),講的比較詳細,希望能給大家做一個參考。
    2016-06-06
  • Java如何讀寫Properties配置文件(Properties類)

    Java如何讀寫Properties配置文件(Properties類)

    這篇文章主要介紹了Java如何讀寫Properties配置文件(Properties類),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • java中forward轉(zhuǎn)發(fā)的使用

    java中forward轉(zhuǎn)發(fā)的使用

    在Java中,forward轉(zhuǎn)發(fā)是一種非常常見且重要的操作,我們將深入探討forward的概念和用法,并給出一些代碼示例來幫助讀者更好地理解,感興趣的可以了解下
    2023-11-11

最新評論