MyBatis的insert语句中XML:values值字符串截取语法举例
时间: 2024-12-18 07:28:47 浏览: 5
mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar
MyBatis中,在`insert`语句的XML映射文件中,如果你想插入数据并动态设置部分值,通常会在`<insert>`元素中结合`#{}`占位符和字符串拼接来处理。假设你想插入一条记录,其中某个字段`name`是从用户输入获取的,你可以这样做:
```xml
<insert id="insertUser" parameterType="map">
INSERT INTO user (id, name, email)
VALUES (#{id}, #{namePrefix} + 'John Doe', #{email})
</insert>
<!-- 使用的时候 -->
<selectKey resultType="int" keyProperty="id">SELECT LAST_INSERT_ID()</selectKey>
<insert id="saveNewUser" parameterType="User">
<call statement="insertUser">
<param type="int" value="${userId}"/>
<param type="string" value="Mr."/>
</call>
</insert>
```
这里,`${userId}`是一个预编译表达式,它的值会从外部传入,而`namePrefix`则是我们在SQL语句中直接使用的静态部分加上用户输入的部分,通过`+`运算符连接起来。
注意:在实际应用中,为了防止SQL注入,应使用`#{namePrefix}`这样的形式,并配合MyBatis的`#{}`安全处理机制,而不是直接使用用户输入的字符串与固定字符串拼接。
阅读全文