Mapper配置文件-insert|update|delete
insert
常用属性
| 常用属性 | 默认值 | 说明 | 其他 |
|---|---|---|---|
| useGeneratedKeys | false | 是否使用JDBC的getGeneratedKeys获取生成的主键 | 适用于自增字段 |
| keyProperty | getGeneratedKeys或由selectKey属性确定 | parameterType中的唯一识别属性,一般为主属性,将会回填至bean | 多个属性时,使用逗号分隔 |
| keyColumn | 唯一识别字段名,一般为主键 | 多个字段时,使用逗号分隔,部分数据库当主键不是第一列时必须设置 |
设置 useGeneratedKeys=true keyProperty="parameterType的主键属性" keyColumn="主键列名",即可在插入记录后,将主键写入bean
1 | <insert id="insertUser" parameterType="user" useGeneratedKeys=true keyProperty="id" keyColumn="id"> |
1 | User user = new User("Alice", "123456"); |
user.id即为插入后的主键值
update
常用属性
| 常用属性 | 默认值 | 说明 | 其他 |
|---|---|---|---|
| keyProperty | 同insert的该属性 | ||
| keyColumn | 同insert的该属性 |
delete
常用属性
无特殊属性
selectKey
部分无法自动生成主键的情况,可以通过selectKey自定义生成主键的方式
| 常用属性 | 默认值 | 说明 | 其他 |
|---|---|---|---|
| keyProperty | 相当于insert的该属性 | ||
| keyColumn | 相当于insert的该属性 | ||
| resultType | 结果类型 | 如果不止一个,可以用Object或Map | |
| statementType | 语句类型 | ||
| order* | 执行时机 | 可选值为 BEFORE |
- order属性表示对于insert的执行时机,BEFORE时,先插入数据再调用selectKey生成主键,AFTER相反
- Mysql等支持自增的数据库需要设为AFTER(插入数据后才能生成自增值);而Oracle需设为BEFORE(先调用序列生成主键再插入)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AlMirai!