这篇文章主要给大家介绍了关于米巴蒂斯中传入参数参数类型类型的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
前言
米巴蒂斯的制图人文件中的选择、插入、更新、删除元素中有一个参数类型属性,用于对应的制图人接口方法接受的参数类型。本文主要给大家介绍了关于米巴蒂斯传入参数参数类型类型的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
1. MyBatis的传入参数parameterType类型分两种
1.1.基本数据类型:int,string,long,Date
1.2.复杂数据类型:类和地图
2. 如何获取参数中的值:
2.1 基本数据类型:#{参数} 获取参数中的值
2.2 复杂数据类型:#{属性名},地图中则是#{key}
3.案例:
3.1 基本数据类型案例
sql id='Base_Column_List '
id,汽车部门名称,汽车制造商名称,图标,汽车制造商名称,热门类型
/sql
select id=' selectByPrimaryKey '结果映射='基本结果映射'参数类型=' Java。郎。龙
挑选
include refid=' Base _ Column _ List '/
来自通用汽车公司
其中id=#{id,jdbcType=BIGINT}
/选择
3.2 复杂类型-地图类型
select id=' queryCarMakerList '结果映射='基本结果映射'参数类型=' Java。util。'地图'
挑选
include refid=' Base _ Column _ List '/
来自通用_汽车_制造cm
其中1=1
if test='id!=null '
并且cm.id=#{id,jdbcType=DECIMAL}
/如果
if test='carDeptName!=null '
以及cm.car_dept_name=#{carDeptName,jdbcType=VARCHAR}
/如果
如果测试='汽车制造商名称!=null '
以及厘米。汽车制造商名称=# {汽车制造商名称,jdbcType=VARCHAR}
/如果
if test='hotType!=null '
并且cm.hot_type=#{hotType,jdbcType=BIGINT}
/如果
按cm.id排序
/选择
3.3 复杂类型-类类型
update id=' updateByPrimaryKeySelective '参数类型=' com。EPE it。API。模型。“普通烤饼”
更新通用汽车制造商
设置
if test='carDeptName!=null '
car _ dept _ name=# { carDeptName,jdbcType=VARCHAR},
/如果
如果测试='汽车制造商名称!=null '
汽车制造商名称=# {汽车制造商名称,jdbcType=VARCHAR},
/如果
if test='icon!=null '
icon=#{icon,jdbcType=VARCHAR},
/如果
如果测试='汽车制造商!=null '
car_maker_py=#{carMakerPy,jdbcType=VARCHAR},
/如果
if test='hotType!=null '
hot_type=#{hotType,jdbcType=BIGINT},
/如果
/设置
其中id=#{id,jdbcType=BIGINT}
/更新
3.4 复杂类型-地图中包含数组的情况
select id=' selectProOrderByOrderId '结果类型=' com。EPE it。API。模型。“pro order”参数类型=“Java。util。哈希表
select sum(pro _ order _ num)proOrderNum,product_id productId,promotion_id promotionId
来自专业订单
其中1=1
if test='orderIds!=null '
和
foreach collection=' orderIds ' item=' item ' open=' order _ id IN(' separator=',' close=')'
#{item,jdbcType=BIGINT}
/foreach
/如果
按产品标识、促销标识分组
/选择
4.注解@Param:这个比较特殊,但是很好理解
案例一:
@Param(value='startdate ')字符串开始日期:注解单一属性;这个类似于将参数重命名了一次
如调用米巴蒂斯的*mapper.xml中配置结构化查询语言语句(道层)
ListString selectdbysorttime(@ Param(value=' start date ')字符串开始日期);
则可扩展标记语言中的语句,需要配合@param括号中的内容:参数为开始日期
select id=' selectdbysorttime '结果类型=' Java。郎。string '参数类型=' Java。郎。字符串
从ebd_fh_ajlc中选择不同的ajlcid,其中sorttime=to_date(#{startdate,jdbcType=VARCHAR},' YYYY-MM-DD ')和创建日期=更新日期
和(从EBD _ FH _ company _ list中选择不同的公司名称,其中isupdate=' 0 ')
/选择
案例二:
注解javaBean,@ Param(value=' dateVo ')dateVo dateVo;则需要注意编写的参数
ListString selectIds(@ Param(value=' dateVo ')dateVo dateVo);
对应的绘图文件
select id=' selectIds '结果类型=' Java。郎。“string”参数类型=“com。API。实体。datevo
从ebd_fh_ajlc中选择distinct ajlcid,其中sort time=to _ date(# { datevo . start date,jdbcType=VARCHAR},' YYYY-MM-DD ')和created_date=updated_date
和key value in(select distinct company name from EBD _ FH _ company _ list,其中isupdate=' 0 ')
/选择
至于利弊,就看个人喜好了。
总结
这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。