可以使用<update>在Mapper XML文件中配置UPDATE语句
元素如下:

<update id="updateStudent" parameterType="Student">
UPDATE STUDENTS SET NAME=#{name}, EMAIL=#{email}, PHONE=#{phone}
WHERE STUD_ID=#{studId}
</update>

我们可以如下调用该语句:
int noOfRowsUpdated =
sqlSession.update("com.mybatis3.mappers.StudentMapper.updateStudent",
student);

无需使用命名空间和语句ID调用映射语句,而是
可以创建一个Mapper接口并以“类型安全”的方式调用该方法,如下所示:
package com.mybatis3.mappers;
public interface StudentMapper
{
int updateStudent(Student student);
}

您可以使用Mapper接口调用updateStudentstatement,如下所示:
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
int noOfRowsUpdated = mapper.updateStudent(student);

我的问题是:为什么第二种方式“类型安全”? “安全类型”在这里是什么意思?

最佳答案

之所以是type-safe,是因为type-mismatch错误将在编译时而非运行时检测到。

在第一个示例中,您可以将任何不是Object类型的Student传递给update方法,它将编译良好,但在运行时将失败。

在第二个示例中,您必须传递一个有效的Student对象,否则,代码将无法编译,因此将其视为type-safe

10-02 00:17