sql语句中的参数类型
MyBatis中有很多内置类型:
这里的别名类型不只是传入参数的类型也可以是返回值类型。
我们常见的自定义的参数类型就是我们的POJO对象。
sql语句的返回值类型
在上面的章节中,已经给出了内置的类型。
我们还可以返回我们的POJO类型。
tips:如果返回的List,则resultType必须是List内部的类型。所有的增删改操作都是没有返回值类型的。
返回值的映射**
如果mysql数据表中的列名与实体类属性名不一致如何处理?
两种方案:
方案一:使用别名,sql语句的as关键字。返回值的属性类型与表中查询得到的列名应该一致。
<select id="queryId" resultType="com.quail.Student">
select stuId,stuName as studentName from student
</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是互斥属性。