1. 程式人生 > >mybatis中的標籤使用說明

mybatis中的標籤使用說明

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mappernamespace="SHIRO_SpecSql">
  4.     <!-- 獲得這個使用者所有的選單許可權 -->
  5.     <selectid="searchSingleUserMenuAuthorities"parameterType="java.lang.String"
    resultMap="OneMenuAuthority">
  6.         select   
  7.         name name,  
  8.         ht_authority_id htAuthorityId,  
  9.         (select ${uid} from dual ) currentUserId  
  10.         from ht_authority   
  11.         where pid = 0
  12.     </select>
  13.     <resultMaptype="com.sailod.shiro.dto.HtAuthorityMenuDTO"id="OneMenuAuthority"
    >
  14.         <idproperty="htAuthorityId"column="htAuthorityId"javaType="java.lang.Long"/>
  15.         <resultproperty="name"column="name"javaType="java.lang.String"/>
  16.         <resultproperty="currentUserId"column="currentUserId"javaType="java.lang.Long"/>
  17.         <collectionproperty="htAuthorityDTO"
    ofType="com.sailod.shiro.dto.HtAuthorityDTO"
  18.          select="selectAuthority"column="{htAuthorityId2 = htAuthorityId ,currentUserId2 = currentUserId}">
  19.          </collection>
  20.     </resultMap>
  21.     <selectid="selectAuthority"parameterType="java.util.HashMap"resultType="com.sailod.shiro.dto.HtAuthorityDTO"resultMap="OneAuthority">
  22.         select ha.name name,  
  23.         ha.url url ,  
  24.         ha.ht_authority_id htauthorityid,  
  25.         ha.pid pid,  
  26.         ha.type type,  
  27.         ha.permission permission,  
  28.         hua.ht_user_id currUserId  
  29.         from ht_authority ha  
  30.         left join ht_user_authority hua on hua.ht_authority_id = ha.ht_authority_id   
  31.         where ha.pid = ${htAuthorityId2}  
  32.         and ha.type = 'menu'
  33.         and hua.ht_user_id = ${currentUserId2}   
  34.     </select>
  35.     <resultMaptype="com.sailod.shiro.dto.HtAuthorityDTO"id="OneAuthority">
  36.         <idproperty="pid"column="pid"javaType="java.lang.Long"/>
  37.         <resultproperty="name"column="name"javaType="java.lang.String"/>
  38.         <resultproperty="url"column="url"javaType="java.lang.String"/>
  39.         <resultproperty="type"column="type"javaType="java.lang.String"/>
  40.         <resultproperty="permission"column="permission"javaType="java.lang.String"/>
  41.         <resultproperty="htAuthorityId"column="htauthorityid"javaType="java.lang.Long"/>
  42.         <resultproperty="currUserId"column="currUserId"javaType="java.lang.Long"/>
  43.     </resultMap>
  44. </mapper>


<resultMap>其實就是返回型別為其引用的id的   標籤所定義的。

<collection> 往這個標籤定義的 ‘類’ 的 list 屬性中設定值, 如何設定值? 還要根據其 select="selectAuthority"  , 把值查詢出來。

  1. package com.sailod.shiro.dto;  
  2. import java.util.List;  
  3. /** 
  4.  * 查詢選單用到dto 
  5.  *  
  6.  * 
  7.  */
  8. publicclass HtAuthorityMenuDTO {  
  9.     private String name;  
  10.     private Long htAuthorityId;  
  11.     private Long currentUserId;  
  12.     private List<HtAuthorityDTO> htAuthorityDTO;  
  13.     public Long getHtAuthorityId() {  
  14.         return htAuthorityId;  
  15.     }  
  16.     publicvoid setHtAuthorityId(Long htAuthorityId) {  
  17.         this.htAuthorityId = htAuthorityId;  
  18.     }  
  19.     public String getName() {  
  20.         return name;  
  21.     }  
  22.     publicvoid setName(String name) {  
  23.         this.name = name;  
  24.     }  
  25.     public List<HtAuthorityDTO> getHtAuthorityDTO() {  
  26.         return htAuthorityDTO;  
  27.     }  
  28.     publicvoid setHtAuthorityDTO(List<HtAuthorityDTO> htAuthorityDTO) {  
  29.         this.htAuthorityDTO = htAuthorityDTO;  
  30.     }  
  31.     public Long getCurrentUserId() {  
  32.         return currentUserId;  
  33.     }  
  34.     publicvoid setCurrentUserId(Long currentUserId) {  
  35.         this.currentUserId = currentUserId;  
  36.     }  
  37. }  
  1. package com.sailod.shiro.dto;  
  2. /** 
  3.  * 查詢選單用到dto 
  4.  *  
  5.  * 
  6.  */
  7. publicclass HtAuthorityDTO {  
  8.     //這個許可權的主鍵
  9.     private Long htAuthorityId;  
  10.     //父選單的主鍵
  11.     private Long pid;  
  12.     private String name;  
  13.     private String url;  
  14.     //型別
  15.     private String type;  
  16.     private String permission;  
  17.     private Long currUserId;  
  18.     public String getName() {  
  19.         return name;  
  20.     }  
  21.     publicvoid setName(String name) {  
  22.         this.name = name;  
  23.     }  
  24.     public String getUrl() {  
  25.         return url;  
  26.     }  
  27.     publicvoid setUrl(String url) {  
  28.         this.url = url;  
  29.     }  
  30.     public Long getHtAuthorityId() {  
  31.         return htAuthorityId;  
  32.     }  
  33.     publicvoid setHtAuthorityId(Long htAuthorityId) {  
  34. 相關推薦

    mybatissql標籤、where標籤、foreach標籤用法

    <sql id="query_user_where"> <!-- 如果 userQueryVo中傳入查詢條件,再進行sql拼接--> <!-- test中userCustom.username表示從userQueryVo讀取屬性值--> &l

    Mybatisif標籤的整型判斷問題

    用mybatis進行資料修改的時候,age屬性沒有賦值,但是我使用update的時候age這個屬性也被修改了。age屬性是一個int型別。 <set>           &

    Mybatistrim標籤的用法

    select * from t_user <trim prefix="WHERE" prefixOverrides="and">   <if test="roleName != null and roleName != ''"> AND role_name=#{roleName}<

    mybatis動態sql的trim標籤的使用

    trim標籤是一種格式化的標記,可以完成set或者是where標記的功能,程式碼如下: 1、select * from user  <trim prefix="WHERE" prefixoverride="AND |OR">     <if test="name != n

    mybatisif標籤判斷字串相等問題

    mybatis 對映檔案中,if標籤判斷字串sfyx變數是否是字串Y的時候,發現並不管用:   <if test="sfyx=='Y' "> and 1=1 </if>   當時就尋思著可能是字元和字串的問題,改成雙引號試

    mybatis-config檔案標籤的使用說明

    在mybaits中,常用的setting的的配置引數如下(如果不在配置檔案中配置將使用預設值): <!-- settings是 MyBatis 中極為重要的調整設定,它們會改變 MyBatis 的執行時行為。 --> <settings> &l

    MyBatis的多表操作情形一:一對一(方式1:一條sql語句查詢,MyBatis3.0可以用association和collection標籤)

    MyBatis支援多表操作,即可以將資料庫中多表的關係對映到物件之間的關係中 表與表之間的關係可以有:一對一,一對多,多對多 關係一演示案例:人和身份證是一對一的,分別建兩個表person和card,其中person的cardid欄位外來鍵關聯card的id,

    Mybatis if標籤判斷字串

    在做開發的時候遇到這樣一個問題:當傳入的type的值為y的時候,if判斷內的sql也不會執行。 <if test="type=='y'"> and status = 0 </if> 仔細想想:my

    MyBatis sql語句include標籤的使用

       <!-- 1.先定義用於select查詢公用抽取的列 -->     <sql id="columns">         id,name,sex,birth

    mybatis標籤的巢狀使用

    mybatis中和標籤的巢狀使用 實現功能 為了解決A實體類的其中一個私有屬性b,對應的是另一個實體類B的物件,查詢A的所有資訊; 需求   通過mybatis框架:查詢年級表下的所有班級的詳細資

    mybatis使用if標籤比較兩個字串是否相等

    今日一坑 轉自:http://www.cnblogs.com/a8457013/p/8033549.html 問題: mybatis中,if標籤,when標籤中都會有條件判斷:test;如何判斷兩個字串是否相等 解決: <if test="dy != null and

    mysql+mybatismybatis一個標籤,執行多條sql語句

    然後在mybatis對映檔案中的標籤中,一般不能執行多條sql,如下: <insert id="addUser" parameterType="User" > insert into t_users (name,password,phone) values (#{na

    MyBatis使用bind標籤構造模糊查詢失敗的解決方法

    下面的這個寫法為什麼不能成功: <select id="findUserByFuzzyEmail" resultMap="BaseResultMap" parameterTy

    MyBatisrefid和trim標籤及其屬性的作用

    一,refid 1、首先定義一個sql標籤,一定要定義唯一id<sql id="Base_Column_List" >name,age</sql> 2、然後通過id引用 <select id="selectAll"> select  <incl

    mybatis標籤實現批量新增

    需求 使用Map集合,向emp表中批量新增資料。 表展示 欄位展示 第一步:建立dao層介面 package com.aaa.mb.dao; import java.util.List; import java.util.Map; /** * className:EmpDao

    MyBatis的對映檔案標籤屬性 parameterType

    mybatis可以傳入的引數型別1.基本資料型別       可以通過#{引數名}直接獲取。每次只能傳入一個值<select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Te

    mybatisif標籤判斷字串相等

    今日按需求在mapper.xml中修改完一條sql的條件,感覺很輕鬆,如下所示:<if test="companyId != null and companyId !='' ">  <if test="companyFlag == '1'">  A

    MyBatis的和標籤的使用

     MyBatis中<resultMap>的<association>和<collection>標籤的使用 之前就用到了很多次,因為公司裡架構設計表結構設計得很精細,

    MyBatis sql標籤和include標籤的使用

    <sql> 和 <include> <sql>用來封裝SQL語句, <include>來呼叫 程式碼片段:<sql id="select"&g

    Mybatis的trim標籤 介紹

    使用過trim標籤都知道trim標籤有四個屬性 prefix,prefixOverrides,suffix,suffixOverrides 本人一直對這四個標籤的名字無法理解,並對其功能感到混亂。下面是自己思考後的一些總結: trim標籤使用 1、tr