# 命名sql
# 概述
命名sql就是给每个sql语句定义一个唯一标识(id)、配置sql语句执行所需参数以及如何处理sql语句执行后的结果。通过命名SQL可以达到集中管理sql语句的作用,因为所有sql语句都是定义在文件中而不是散落在代码里。在调用时,只需传入唯一标识(id)和参数即可。
注意:id的值中不允许包含"."。
# 元素
命名SQL的基本元素包括:
- <parameterMap>:parameterMap负责将对象属性映射成statement的参数;
- <resultMap>:resultMap负责将结果集的列值映射成对象的属性值;
- <statement>(Mapped Statement):该元素是个通用声明,可以用于任何类型的sql语句,但具体的statement类型,即<insert>、<update>、<delete>、<select>、<procedure>)提供了更直观的XML DTD,因此强烈推荐使用。
下表总结了statement类型及其属性:
statement类型 | 属性 |
---|---|
<statement> | id、parameterClass、resultClass、parameterMap、resultMap |
<select> | id、parameterClass、resultClass、parameterMap、resultMap |
<procedure> | id、parameterClass、resultClass、parameterMap、resultMap |
<insert> | id、parameterClass、parameterMap |
<update> | id、parameterClass、parameterMap |
<delete> | id、parameterClass、parameterMap |