Mybaits对于sql注入的处理
Mybaits采用预编译的方法来避免(使用#{}时)sql注入,我们的sql语句会直接被编译成select * from student where sno = ? , 我们传给mapper.xml的参数会替换占位符。此时我们sql注入的or就失去了作用(个人理解)
Mybaits如何做关联查询(association,collection)
我认为核心思想就是类和表的对应,我们查完的数据肯定是要转换成类的,所以我们关联查询,要么建立一个新的类来接收,要么把一个类的字段加上另外一个类。(核心还是通过这种操作来实现表中的属性到类的每一个字段的一一对应)
一对一用association对应的接收类中增加的字段就是一个对象。
一对多用collection相应的就是好像来填充接收类中的List字段。
当我们只是关联查询另一个表,比如我要查询学生住的宿舍的信息而不需要学生的信息时,我们可以直接使用Hostel类来接受,而不用使用resultMap + Student类中加上Hostel hostel 字段来处理。
Mybaits处理多个输入参数(@Param)
@Param(“XXX”, String name),作用就是将name字段的名称改为XXX
此时就可以使用#{XXX} 来做sql查询了。