今天在练习mybatins的时候,突然思考一个问题。
StudentDao接口中的方法
测试方法
测试方法中字符串里面又加了一个单引号的字符串是我在尝试,这个加不加报错的信息都是一样的
mapper中
报错信息
由前面的运行过程可以看出来,前面都没问题,就是到19行,不能映射到mapper
然后把String name 换成了Integer id 这个id是我这张表的主键。就能成功运行了
此时我又想,不应该啊,不是住键也应该能查出来信息的。我就用另一个参数 Integer age
运行结果
根据上图可以看到,这里是已经查询出来结果了。但是有个错误,意思是,查询到结果了,但是不是一个结果,而是两个
因为我定义的方法是只查询了一个,没往集合里面放,所以有错误。这个正常
所以说,不是主键,也能查出来结果。但是为什么这里使用字符串就查不出来呢。
为了验证字符串在MySQL中没有问题
我直接使用cmd窗口查询,可以看到字符串是没问题的。
这个字符串的名字是11的原因是,我字母,汉字,数字都做了尝试
我又去查了些别的资料。可能是我对mybatis的了解程度还不够。我就先把这个写出来,哪天再回过头看,希望能明白原因。