1.resultType与resultMap的区别与联系
-
resultType是接口中你所定义的方法的返回值类型,通常值为:返回值类型的全名称路径。
若返回值类型为Java内置的8大基本类型,那么我们可以直接写其简写形式。但是为了整体风格保持一致,建议还是写作java.lang.Integer这种格式。
此外:若是觉得写类的全名称路径比较麻烦,那我们可以在mybatis.xml中使用<typeALiases>标签,给resultType起别名。
-
resultMap是为了解决:当resultType的返回值类型的属性名,跟数据库表中的列的名字不一致的情况,这种情况下,我们可以使用<resultMap>标签,来形成映射关系,将两者之间联系起来。这样最终数据库给我们产生的结果就能按照我们定义的类的属性那样展示,一一对应。
2.parameterType的解释
- 首先我们要明白,parameterType表示的含义是接口中方法的参数类型。通常我们都是省略不写的,若是你想写,那么你可以写起全名称类型,或者是其简写形式。
- 其次是:paramterType对应着我们sql语句中要传入的参数。我们在sql语句中,会使用#{?}来表示传进来的参数,此时,我们们传入的参数类型为8大基本类型,那么这里的?我们则可以随便写任何名字,当然见名知意是最好。若是不是8大基本类型,即我们传入的参数类型是引用类型,那么我们这里的?必须写作是该应用类型所在类的属性名,否则就会报错。
- 若是接口中方法传入的参数为两个,那么我们必须在定义接口的方法的参数中,使用@Param,给参数起别名,同时,在sql语句传参的时候,也必须使用这个起的别名。当然,参数为多个的时候,可以将这几个参数封装成一个类。