mybatis xml接收日期格式参数

 我这边程序报错 date not cast String ,是因为我犯了一个低级错误,mapper中参数是date,mapper.xml中用的却是parameterType  = string 。类型一定要匹配。

实现方式一: 

mapper

List selectjgcf(@Param("rq")Date rq)

mapper.xml 


 SELECT  jhcb ,
    round(1000 * t1.jrbl * t2.sjdj/100,2) as sjcb
    from as_clcfb t1
    left join  as_cldjb t2 on t1.clmc = t2.clmc
    where #{rq,jdbcType=DATE} between t1.ks_day  and   t1.end_day
    and #{rq,jdbcType=DATE} between t2.ks_day  and   t2.end_day
    order by cllx

不指定参数类型,date是datetime,我们要的是日期,所以指定下参数类型 更准确。 

mybatis xml接收日期格式参数_第1张图片mybatis xml接收日期格式参数_第2张图片

 题外话

mapper.xml

 
    insert into a (id, rq, create_time, 
      remark)
    values (#{id,jdbcType=INTEGER}, #{rq,jdbcType=DATE}, #{createTime,jdbcType=TIMESTAMP}, 
      #{remark,jdbcType=VARCHAR})
  

数据库表结构

mybatis xml接收日期格式参数_第3张图片

你可能感兴趣的:(编程,xml)