<insert id="insertUser" parameterClass="User">
insert into t_user values (
null,#username#,#password#
)
<selectKey resultClass="int" keyProperty="id">
<!-- 此处不区分大小写 -->
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
User user = new User();
user.setUsername("张三");
user.setPassword("张三密码");
//如果主键是自动生成的,则其返回值可以通过<selectKey>标签来设置
//如果不通过<selectKey>标签来设置,则返回值为空!
//<selectKey >中的keyProperty,是指定User中的id属性,当调用结束之后,
//user对象的id值和insert方法的返回值都是这条记录的ID值!
Object obj = sqlMapper.insert("insertUser", user);
分享到:
相关推荐
在IT行业中,数据库管理和持久化框架的使用是至关重要的,其中Ibatis作为一款轻量级的Java ORM(对象关系映射)工具,被广泛应用。本教程聚焦于Ibatis中的一个关键概念:SQL主键生成方式。主键是数据库表中用于唯一...
1. **序列(Sequence)**:这是在Oracle数据库中常用的方式,通过创建一个序列对象,每次插入新记录时,序列会自动提供一个新的唯一值。在Ibatis配置中,可以通过`<selectKey>`标签来指定使用序列生成主键。 2. **...
- **创建数据库与表结构**:根据示例中的SQL语句创建名为`itcast`的数据库及`student`表,表中包括`id`(主键自增长)、`firstname`和`lastname`三个字段。 - **实体类定义**:定义一个名为`Student`的Java类,...
在Oracle环境下,我们通常会创建一个序列对象,然后在映射文件中配置对应的主键生成策略,确保每个新插入的记录都有一个唯一的ID。 在IbatisDemo项目中,你将看到如何设置这些配置,以及如何在Java代码中调用它们。...
- **后获取主键**:对于自动增长的主键,如MySQL,`<selectKey>`可以在插入语句之后配置,利用`LAST_INSERT_ID()`获取自增主键。 5. **SQL参数(ParameterClass)**: - 插入操作:`parameterClass`指定传入参数...
- 同样在`sql_map_user.xml`中定义了一个`select`元素,用于查询`t_user`表中的所有记录。 - `resultClass`属性指定了结果集映射到的类,即`User`类。 - SQL语句中通过别名`u`简化了查询语句,并将`user_name`...
通常,`contactid`会被设置为自动增长,以便在插入新记录时自动生成唯一的标识。 接下来,我们需要在Ibatis的配置文件(例如:`mybatis-config.xml`)中添加数据库连接的相关配置,如数据源、驱动等,确保Ibatis...
iBatis 是一个由 Apache 开源组织提供的轻量级数据持久层框架,它是一个 Object-Relational Mapping(ORM)解决方案,旨在简化Java应用程序中的数据库交互。它的主要特点是小巧且易于上手,尤其适合那些需要简单但...
在iBatis中,插入新记录后获取自增长ID值是非常常见的需求。`SqlMapClient`提供了一种方式,通过`<selectKey>`标签来实现。例如: ```xml <insert id="insertUser"> insert into t_user values (null, #username#,...
当插入一条新记录时,如果数据库字段(如`id`)是自动增长的,我们可以使用`<selectKey>`标签来获取新生成的ID值。`<selectKey>`标签允许我们执行一个SQL查询,如`SELECT @@IDENTITY AS ID`,该查询返回刚刚插入...
在给出的示例中,`type = IdType.AUTO`表示自动增长,意味着数据库字段需要设置为自增类型。如果数据库未设置自增,插入数据时可能会抛出异常。 插入操作的示例展示了如何调用`insert()`方法向数据库中插入一条记录...
在上面的代码中,`selectKey` 元素将获取最后插入的自动增长的主键值,并将其赋值给参数对象的 `id` 字段。 在实际应用中,我们可能需要在插入数据之后执行其他操作,例如,获取插入后的主键值,以便进行下一步的...
在开始之前,我们需要创建一个名为`student`的数据库表,包含字段`id`(主键,自增长),`name`(姓名)和`age`(年龄)。这将作为我们的数据存储基础。 ```sql CREATE TABLE `student` ( `id` int(11) NOT NULL ...
- MySQL:利用自增长特性,通过 SQL 语句 `SELECT LAST_INSERT_ID()` 获取最后插入行的 ID。 #### 7. 关联关系处理 - **处理方式**:支持多种关联查询方式,包括连接查询和两次查询方式。 - 一对多:使用连接...
在当今大数据时代,随着业务量的不断增长,单个数据库的性能瓶颈日益凸显。为了解决这一问题,开发者们通常会采用数据库分库分表的策略,将数据分散到多个数据库或表中,以实现水平扩展,提高系统的处理能力和可用性...