可以使用<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);
我的问题是:为什么第二种方式是“类型安全”? “类型安全”在这里意味着什么?
答案 0 :(得分:3)
它是type-safe
因为type-mismatch
错误将在编译时检测到,而不是运行时。
在第一个示例中,您可以将任何非Object
类型的Student
传递给update方法,它将正常编译但在运行时将失败。
在第二个示例中,您必须传递有效的Student
对象,否则代码将无法编译,因此它被视为type-safe
。