java.sql.SQLException: 无效的列类型: 1111

dao层:

@Mapper
public interface UserPunchCardMapper extends BaseMapper<UserPunchCard> {

    List<UserPunchCard> selectByUserCode(@Param("userCode") String userCode);

}

对应的xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mes.production.dao.UserPunchCardMapper">

    <select id="selectByUserCode" resultType="com.mes.production.entity.UserPunchCard">
        SELECT * FROM PR_T_USER_PUNCH_CARD WHERE USER_CODE = #{userCode}
    </select>

报错原因: 传入了为null的userCode
解决方法: 根据业务如果允许参数为空时返回全部值,那么可以在xml里添加非空判断,如下:

<select id="selectByUserCode" resultType="com.mes.production.entity.UserPunchCard">
        SELECT * FROM PR_T_USER_PUNCH_CARD WHERE 1 = 1 
        <if test="userCode != null and userCode != ''">
            AND USER_CODE = #{userCode}
        </if>
</select>

如果业务不允许,那么在业务层代码里添加非空判断, 不为空才调用该方法即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值