MyBaits连接字符串和MyBatis的常见错误(BindingException)

出现上述错误的解决方法

1.检查配置文件

在applicaiton.yml中配置方式应该如图所示

mybatis:
  mapper-locations: classpath:mapper/*.xml

*表达任意字符

注意!这里的mapper一定是和mybatis有一个table的距离,否则判断不出来,当然出现下面的情况这样也是正确的

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
  mapper-locations: classpath:mapper/*.xml

要注意你mapper所在文件主路径是否和yml中的配置一致,更需要找到他们之间配置的关系。

2.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.bite.mybatisdemo.mapper.UserInfoXMLMapper">

    <select id="queryUserInfos" resultType="com.bite.mybatisdemo.model.UserInfo">
        select * from userinfo
    </select>
</mapper>

查看相关信息是否一 一对应,如果没有则会导致文件互相无法找到

### 传入参数数组 在MyBatis中,当传入参数为数组时,可以使用`<foreach>`标签来遍历数组元素。以下是几种常见的使用场景示例: #### 查询语句中使用数组 ```java @Select({ "<script>", "select * from student ", "where id in ", "<foreach item='item' collection='array' open='(' separator=',' close=')'>", "#{item}", "</foreach>", "</script>" }) List<Student> getStudentInfo(@Param("array") String[] array); ``` 上述代码通过`@Select`注解结合`<foreach>`标签,将数组元素拼接成`IN`语句的参数列表,用于查询`student`表中`id`在数组范围内的记录[^1]。 ```xml <select id="selectOptioesKey" parameterType="String" resultType="hotkidclub.model.piety.QuestionOption"> SELECT user_id,user_name,user_sex,user_age,user_phone FROM tb_user WHERE 1=1 AND user_id IN <foreach collection="array" item="item" index="index" open="(" close=")" separator=","> #{item} </foreach> </select> ``` 此为XML配置方式,通过`<foreach>`标签遍历数组元素,实现根据用户`id`数组查询`tb_user`表中相关记录的功能[^2]。 #### 更新语句中使用数组 ```xml <update id="updateBatchStateByPrimaryKeySelective"> update ARTICLE set STATE = #{state,jdbcType=TINYINT} where AUTHORID in <foreach collection="arrArticleid" index="index" item="item" open="(" separator="," close=")"> #{item,jdbcType=INTEGER} </foreach> and CREATORID = #{userid,jdbcType=INTEGER} </update> ``` 该XML配置用于批量更新`ARTICLE`表,根据数组`arrArticleid`中的`AUTHORID`指定的`CREATORID`更新记录的`STATE`字段[^4]。 ### 传入参数字符串 传入参数字符串时,在MyBatis中使用相对简单,直接在SQL语句中引用即可。 #### Java注解方式 ```java @Select("select * from student where name = #{name}") Student getStudentByName(@Param("name") String name); ``` 此方法通过`@Select`注解,将传入的字符串参数`name`用于查询`student`表中`name`字段匹配的记录。 #### XML配置方式 ```xml <select id="getStudentByName" parameterType="String" resultType="com.example.Student"> SELECT * FROM student WHERE name = #{name} </select> ``` 该XML配置实现了与上述注解方式相同的功能,通过传入字符串参数`name`查询`student`表中的记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼裤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值