1.parameterType 可以省略不写,其本身只是一个限制传入的参数类型,如果省略Mybatis本身会自动获取Mapper接口的参数进行自动判断。如果要传入多个参数用@Param注解,通过#{value}来获取参数。
2.resultType 设置返回的类型。sql语句查询的结果封装成POJO返回,这里要求POJO也就是我们的实体类Entity的属性(成员变量)要和所查询的表的字段要一一对应,如果不对应则为null空值。为了解决实体类和表字段的对应,可以开启驼峰映射
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true #开启驼峰映射
例如表的一个字段为 phone_num ,实体类为phoneNum;开启了驼峰映射后
phone_num->phoneNum->setPhoneNum(); 把查询的结果封装到对象实现匹配
3.resultMap
其实所有的resultType返回的结果都是经过resultMap转换过来的,返回的Map集合再次封装成对象,可以理解为
resultMap–>resultType
在进行多表查询时候可以通过resultMap设置POJO对象没有的属性返回非常有用
<resultMap id="BaseResultMap" type="com.cwy.mybatisstudy.demo.entity.PersonInfo">
<id column="id" property="id" javaType="java.lang.String"></id>
<result column="name" property="name" javaType="java.lang.String"></result>
<result column="father_name" property="fatherName" javaType="java.lang.String"></result>
<result column="mother_name" property="motherName" javaType="java.lang.String"></result>
<result column="phone_brand" property="phoneBrand" javaType="java.lang.String"></result>
<result column="home_address" property="homeAddress" javaType="java.lang.String"></result>
</resultMap>
<resultMap id="BaseResultMap2" type="com.cwy.mybatisstudy.demo.entity.Study" >
<id column="id" property="id" javaType="java.lang.String"></id>
<result column="name" property="name" javaType="java.lang.String"></result>
<result column="father_name" property="fatherName" javaType="java.lang.String"></result>
<result column="mother_name" property="motherName" javaType="java.lang.String"></result>
<result column="phone_brand" property="phoneBrand" javaType="java.lang.String"></result>
<result column="home_address" property="homeAddress" javaType="java.lang.String"></result>
<result column="study_language" property="studyLanguage" javaType="java.lang.String"></result>
</resultMap>