sql语句中的参数类型

MyBatis中有很多内置类型:
image.png
image.png
image.png
这里的别名类型不只是传入参数的类型也可以是返回值类型。
我们常见的自定义的参数类型就是我们的POJO对象。

sql语句的返回值类型

在上面的章节中,已经给出了内置的类型。
我们还可以返回我们的POJO类型。
tips:如果返回的List,则resultType必须是List内部的类型。所有的增删改操作都是没有返回值类型的。

返回值的映射**

如果mysql数据表中的列名与实体类属性名不一致如何处理?
两种方案:

  • 方案一:使用别名,sql语句的as关键字。返回值的属性类型与表中查询得到的列名应该一致。

    1. <select id="queryId" resultType="com.quail.Student">
    2. select stuId,stuName as studentName from student
    3. </select>
  • 方案二:使用resultMap(结果映射)

    <!-- 结果映射 --> 
    <!-- 映射数据表和类的属性之间的关系 -->
    <resultMap id="studentMapping" type="com.st.pojo.Student"> 
    <!-- 每一张表都有主键,先要映射主键 --> 
    <!-- column:列名 property:属性名 JavaType:类型(一般都是自动识别) -- >
       <id column="stuId" property="stuId" javaType="java.lang.Long"/> 
      <!-- 映射其他属性 --> 
    <result column="stuName" property="studentName" jdbcType="VARCHAR"/>
    <result column="longinPass" property="loginPass"/> 
    <result column="stuGender" property="stuGender"/> 
    <result column="stuAge" property="stuAge"/> 
    <result column="stuBirth" property="stuBirth"/> 
    <result column="stuTel" property="stuTel"/> 
    <result column="stuEducation" property="stuEducation"/>
    <result column="status" property="status"/> 
    <result column="classId" property="classId"/> 
    </resultMap>
    
    <!-- 查询全部 -->
    <!-- 这里不适用resultType,而是使用resultMap --> 
    <select id="queryAll" resultMap="studentMapping"> 
    select * from student 
    </select>
    

    tips:resultType和resultMap是互斥属性。