携手创作,共同成长!这是我参与「掘金日新计划·8 月更文挑战」的第15天,点击查看活动详情
MyBatis insert标签用来插入SQL语句。当MyBatis执行完一条插入后,就会返回数据库行数。 示例insert标签具体用法。
- 修改 WebsiteMapper.xml,增加插入语句,代码如下。
<!-- 添加信息 -->
<insert id="addWebsite" parameterType="string"> insert into website(name) values(#{name})</insert>
- 在WebsiteMapper接口中定义一个add方法
public int addWebsite(String name);
参数为 Sting 类型的字符串;返回值为 int 类型,即执行 SQL 后,插入记录的行数。 3. 测试如下。
//插入 name 为铽test4的记录String name = "test4";int i = websiteMapper.addWebsite(name);System.out.println("共插入了 " + i + " 条记录");
- 执行测试代码控制台输出。
共插入了 1 条记录数据
insert 标签常用属性
| 属性名称 | 描述 | 备注 |
|---|---|---|
| id | sql 片段在命名空间内的唯一标识. 和mapper 中方法名保持一致 | 如果命名空间+ id 不唯一,那么 MyBatis 抛出异常 |
| parameterType | 参数类型, 通常都可以省略。 | 支持基本数据类型和 JavaBean、Map 等复杂数据类型 |
| keyProperty | 该属性的作用是将插入操作的返回值赋给 PO 类的某个属性,通常为主键对应的属性。如果是联合主键,可以将多个值用逗号隔开。 | - |
| useGeneratedKe | 是否回填自动生成的主键 | |
| timeout | 执行超时时间, 默认未设置, 由数据库驱动决定。 | - |
| databaseId | 取值范围 oracle、mysql 等,表示数据库厂家;元素内部可通过 来为特定数据库指定不同的 sql 语句。 | 取值范围为Oracle、mysql等,表示数据库制造商;元素可以通过<if test=“_databaseid='Oracle'”>为特定数据库指定不同的SQL语句。Mybatis可以根据不同的数据库供应商执行不同的语句。这种多供应商支持基于映射语句中的databaseid属性。Mybatis加载所有不带databaseid属性且databaseid属性与当前数据库匹配的语句。如果同时找到具有和不具有databaseid的同一语句,则后者将被丢弃 |
| keyColumn | 该属性用于设置第几列是主键,当主键列不是表中的第 1 列时,就需要设置该属性。如果是联合主键,可以将多个值用逗号隔开。 | - |