myvatis映射注入中insert 标签元素常用属性 什么是true
时间: 2025-07-06 21:58:46 浏览: 2
### MyBatis `insert` 标签常用属性解释
#### 1. `parameterType`
此属性指定传入 SQL 语句的参数类型。可以是基本数据类型、POJO 或 Map 类型。
```xml
<insert id="addUser" parameterType="com.example.User">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
```
#### 2. `keyProperty`
当插入记录时,如果希望获取自动生成的主键并将其赋给 Java 对象中的某个属性,则可以通过设置 keyProperty 来完成这一目标[^4]。
```xml
<insert id="insertUserWithId" parameterType="map" useGeneratedKeys="true"
keyProperty="user.id">
INSERT INTO users(name, email) VALUES (#{user.name}, #{user.email})
</insert>
```
#### 3. `useGeneratedKeys`
默认情况下,MyBatis 不会自动读取由数据库生成的关键字(如 MySQL 的 AUTO_INCREMENT 字段)。要使 MyBatis 能够处理这种情况,需将此选项设为 true 并配合 keyProperty 使用。
```xml
<insert id="insertArticle" parameterType="article" useGeneratedKeys="true"
keyProperty="id">
INSERT INTO articles(title,content) VALUES(#{title},#{content})
</insert>
```
#### 4. `flushCache`
控制是否刷新本地缓存,默认值取决于配置文件中 `<setting name="defaultExecutorType">` 设置;对于 Insert 操作而言,默认行为通常是 flush=true 即每次都会清除缓存以确保最新数据的一致性[^1]。
```xml
<insert id="saveOrUpdateBlogPost" flushCache="true">
<!-- ... -->
</insert>
```
#### 5. 返回值
执行完插入操作之后,MyBatis 将返回受影响的数据行数作为方法调用的结果^[]^。
```java
int rowsAffected = sqlSession.insert("namespace.addRecord", record);
System.out.println(rowsAffected + " row(s) inserted.");
```
阅读全文
相关推荐

















