mybatis的mapper.xml 中如果parameterType = “java.long.Long”
也就是mapper接口中的方法是按照单个参数去传递的:
1. mapper 接口
CtContractVo selectContractDetialById(Long id);
2. mapper.xml
注意作为where条件的时候不能加<if>标签
and c.id = #{id, jdbcType=BIGINT}
<select id="selectContractDetialById" parameterType="java.lang.Long" resultMap="ContractResultMap">
select
c.id, c. name, c. order_id, c. money, c. status, c. apply_time, c. expiry_time, c. tenant_id, c. update_user,
c.first_party, c. second_party, c. description, c. path, c. content, c. images, c. delete_flag,
o.order_name, o.money order_money
from
ct_contract c
left join ct_order o
on c.order_id = o.id
where 1=1
and c.id = #{id, jdbcType=BIGINT}
and c.delete_flag = 0
</select>
如果加上了,会报错:
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘id’ in ‘class java.lang.Long’
<if test="id != null">
and c.id = #{id, jdbcType=BIGINT}
</if>