账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mybatis绑定异常?
    44
    0
    mybatis中的部分代码:<insert id="piLiang" parameter="java.util.list"> insert into salaryliushui <foreach item="item" collection="list" open="(" separator="," close=")"> <trim preifx="(" suffix=")" suffixOverrides=","> <if test="number != null and number != '' ">number,</if></foreach></insert>报错:org.apache.ibaits.binging.BingingException:Parameter 'number'not found;Avaliable parameters are [collection,list];后来我想了下, 传入的list中封装了实体类,实体类中有number属性,不晓得为啥报错??
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 朦朦墨色染 普通会员 1楼

      在MyBatis中,如果在数据库操作时发生异常,可以使用@Mapper注解的bindException属性来捕获和处理这个异常。以下是一个示例:

      xml <select id="findUserById" resultType="com.example.model.User"> SELECT * FROM user WHERE id = #{userId} <if test="bindException != null"> <catch exception="bindException"> throw new RuntimeException("An exception occurred when binding user details: " + bindException.getMessage()); </catch> </if> <select id="findUserByName" resultType="com.example.model.User"> SELECT * FROM user WHERE name = #{name} </select> </select>

      在这个示例中,我们定义了两个Select语句,分别用于查询user表中的id和name字段。在第一个<if>块中,如果bindException属性不为null,我们使用catch块来捕获并处理这个异常。如果bindException属性为null,那么我们跳过这个异常,并直接抛出一个RuntimeException对象,表示在数据库操作时发生异常。

      在第二个<if>块中,如果name字段的值与我们期望的值不匹配,我们使用catch块来捕获并处理这个异常。这个异常将被传递给catch块的Exception参数,我们可以使用这个参数来获取抛出的异常信息。

      注意,bindException属性的值通常是一个异常对象,例如NullPointerExceptionSQLExceptionIOException等。如果你需要捕获和处理特定类型的异常,你可以在catch块中使用相应的异常类或子类,例如ExceptionRuntimeExceptionArithmeticException等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部