mybatis存儲過程中select標簽屬性詳解


Mybatis映射文件的<select>標簽主要幫助我們完成SQL語句查詢功能,<select>標簽它包含了很多屬性,下面簡單對<select>標簽的屬性做一個歸納

一、一般情況下用得到的屬性:

  id:唯一指定標簽的名字

  resultType:查詢結構返回的數據類型,自動進行封裝操作

  parameterType:給SQL語句傳遞參數的數據類型

  resultMap:查詢結果返回的數據類型,會根據映射文件中<resultMap>來完成數據封裝

  parameterMap:給SQL語句傳遞參數的數據類型,需要和<parameterMap.../>標簽連用

<select id="selectRoleByUserId" resultType="com.example.simple.model.SysRole">
        select r.id,
            r.role_name,
            r.enabled,
            r.create_by,
            r.create_time,
            u.user_name as "user.userName",
            u.user_email as "user.userEmail"
        from sys_user u
         inner join    sys_user_role ur on u.id = ur.user_id
        INNER JOIN sys_role r on ur.role_id = r.id
        where u.id = #{userId}

    </select>

二、mybatis存儲過程中select標簽會用到的屬性

   statementType:標記操作SQL的對象,STATEMENT,PREPARED 或 CALLABLE(存儲過程) 的一個。這會讓 MyBatis 分別使用 Statement,PreparedStatement 或 CallableStatement,默認值:PREPARED。

    1、STATEMENT:直接操作sql,不進行預編譯,獲取數據:$—Statement  ——  Statement接口提供了執行語句和獲取結果的基本方法; 
    2、PREPARED:預處理,參數,進行預編譯,獲取數據:#  —–  PreparedStatement:默認   ——  PreparedStatement接口添加了處理 IN 參數的方法; 
    3、CALLABLE:執行存儲過程————CallableStatement 

plus:

  Statement: 

普通的不帶參的查詢SQL;支持批量更新,批量刪除; Statement每次執行sql語句,數據庫都要執行sql語句的編譯,最好用於僅執行一次查詢並返回結果的情形,效率高於PreparedStatement。 

  PreparedStatement: 

可變參數的SQL,編譯一次,執行多次,效率高; 安全性好,有效防止Sql注入等問題; 支持批量更新,批量刪除; 

  CallableStatement: 

繼承自PreparedStatement,支持帶參數的SQL操作; 支持調用存儲過程,提供了對輸出和輸入/輸出參數(INOUT)的支持;

轉載自:https://www.cnblogs.com/vickylinj/p/9481019.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM