zoukankan      html  css  js  c++  java
  • mybatis中@param的使用与否

    1、不使用@param

      DAO层:List<ShopCategory> queryShopCategory(ShopCategory shopCategory);:以对象为参数

      mapper.xml:

    <select id="queryShopCategory" resultType="com.imooc.o2o.entity.ShopCategory">
    		SELECT
    		shop_category_id,
    		shop_category_name,
    		shop_category_desc,
    		shop_category_img,
    		priority,
    		create_time,
    		last_edit_time,
    		parent_id
    		FROM
    		tb_shop_category
    		<where>
    			<!-- <if test="shopCategoryCondition.parent != null">
    				and parent_id = #{shopCategoryCondition.parent.shopCategoryId}
    			</if> -->
    			<if test="parent != null">
    				and parent_id = #{parent.shopCategoryId}
    			</if>
    		</where>
    		ORDER BY 
    		priority DESC
    	</select>
    

      DO层:

     1 package com.imooc.o2o.entity;
     2 
     3 import java.util.Date;
     4 
     5 public class ShopCategory {
     6     
     7     private Long shopCategoryId;
     8     private String shopCategoryName;
     9     private String shopCategoryDesc;
    10     private String shopCategoryImg;
    11     private Integer priority;
    12     private Date createTime;
    13     private Date lastEditTime;
    14     private ShopCategory parent;
    15     public Long getShopCategoryId() {
    16         return shopCategoryId;
    17     }
    18     public void setShopCategoryId(Long shopCategoryId) {
    19         this.shopCategoryId = shopCategoryId;
    20     }
    21     public String getShopCategoryName() {
    22         return shopCategoryName;
    23     }
    24     public void setShopCategoryName(String shopCategoryName) {
    25         this.shopCategoryName = shopCategoryName;
    26     }
    27     public String getShopCategoryDesc() {
    28         return shopCategoryDesc;
    29     }
    30     public void setShopCategoryDesc(String shopCategoryDesc) {
    31         this.shopCategoryDesc = shopCategoryDesc;
    32     }
    33     public String getShopCategoryImg() {
    34         return shopCategoryImg;
    35     }
    36     public void setShopCategoryImg(String shopCategoryImg) {
    37         this.shopCategoryImg = shopCategoryImg;
    38     }
    39     public Integer getPriority() {
    40         return priority;
    41     }
    42     public void setPriority(Integer priority) {
    43         this.priority = priority;
    44     }
    45     public Date getCreateTime() {
    46         return createTime;
    47     }
    48     public void setCreateTime(Date createTime) {
    49         this.createTime = createTime;
    50     }
    51     public Date getLastEditTime() {
    52         return lastEditTime;
    53     }
    54     public void setLastEditTime(Date lastEditTime) {
    55         this.lastEditTime = lastEditTime;
    56     }
    57     public ShopCategory getParent() {
    58         return parent;
    59     }
    60     public void setParent(ShopCategory parent) {
    61         this.parent = parent;
    62     }
    63     @Override
    64     public String toString() {
    65         return "ShopCategory [shopCategoryId=" + shopCategoryId + ", shopCategoryName=" + shopCategoryName
    66                 + ", shopCategoryDesc=" + shopCategoryDesc + ", shopCategoryImg=" + shopCategoryImg + ", priority="
    67                 + priority + ", createTime=" + createTime + ", lastEditTime=" + lastEditTime + ", parent=" + parent
    68                 + "]";
    69     }
    70     
    71     
    72 }

    2.使用@param

      DAO层:

    List<ShopCategory> queryShopCategory(@Param("shopCategoryCondition") ShopCategory shopCategory);

      mapper.xml:

      

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     3     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     4 <mapper namespace="com.imooc.o2o.dao.ShopCategoryMapper">
     5     <select id="queryShopCategory" resultType="com.imooc.o2o.entity.ShopCategory">
     6         SELECT
     7         shop_category_id,
     8         shop_category_name,
     9         shop_category_desc,
    10         shop_category_img,
    11         priority,
    12         create_time,
    13         last_edit_time,
    14         parent_id
    15         FROM
    16         tb_shop_category
    17         <where>
    18             <if test="shopCategoryCondition.parent != null">
    19                 and parent_id = #{shopCategoryCondition.parent.shopCategoryId}
    20             </if>
    24         </where>
    25         ORDER BY 
    26         priority DESC
    27     </select>
    28 </mapper>

    由此可以看出,mybatis在xml中做值的注入时,若是不使用@param,则若参数为对象,则在#{}中则直接写对象中的属性。无法根据对象来绑定。例如上例中的and parent_id = #{parent.shopCategoryId}。参数为ShopCategory。但是由于没有用

    @param做参数别名,因此在#{}无法直接引用参数,只能直接通过对象参数的属性来进行#{}注入。

    但是如果使用了@param。则对象参数在进行#{}注入时可以使用别名。例如下例子中 shopCategoryCondition就是DAO层定义的方法中的参数shopCategory的别名

      <if test="shopCategoryCondition.parent != null">
          and parent_id = #{shopCategoryCondition.parent.shopCategoryId}
      </if>
     
  • 相关阅读:
    .NET + Jcrop 实现在线裁图功能
    jquery表格可编辑修改表格里面的值,点击td变input无刷新更新表格
    A、B、C、D和E类IP地址
    linux内核源码阅读之facebook硬盘加速flashcache之四
    Help-IntelliJIDEA-2019.3.4-插件:插件下载,安装,重启idea
    Help-IntelliJIDEA-2019.3.4-基础设置:14. intellij idea怎么调整菜单栏字体大小
    Help-IntelliJIDEA-2019.3.4-基础设置:13. 统一设置编码
    Help-IntelliJIDEA-2019.3.4-基础设置:12. Intellij IDEA的代码提示功能
    Help-IntelliJIDEA-2019.3.4-基础设置:11. idea 自动补全返回值,自动补全变量名称和属性名称
    Help-IntelliJIDEA-2019.3.4-基础设置:10.Maven自动下载源码包,告别反编译,直接上源码注释
  • 原文地址:https://www.cnblogs.com/exceptionblog/p/10213331.html
Copyright © 2011-2022 走看看