`
guyongpeng
  • 浏览: 61561 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

利用ibatis在插入记录时同时得到自增长的键值方法

阅读更多
在SQL Server数据库中,采用自增长的字段作为主键,在插入一条记录时有时需要同时得到自增长的id。一般的方式是先执行insert语句,然后根据该insert的数据唯一特征(唯一键)检索到该数据,得到id。这个方法首先不方便,其次对于该数据没有唯一特征的情况甚至都不可行。ibatis提供了简单的解决办法。

表结构为:
CREATE TABLE [TaskDeliveryURL] (
	[urlId] [int] IDENTITY (1, 1) NOT NULL ,
	[urlName] [nvarchar] (511) ,
	[urlLink] [nvarchar] (511) ,
	PRIMARY KEY  CLUSTERED ([urlId])  ON [PRIMARY] 
)

model为:
package com.ccg.ciic.proxy.domain;

public class TaskDeliveryUrl {
	private String urlName;
	private String urlLink;
	private long urlId;
	
	public long getUrlId() {
		return urlId;
	}
	public void setUrlId(long urlId) {
		this.urlId = urlId;
	}
	public String getUrlLink() {
		return urlLink;
	}
	public void setUrlLink(String urlLink) {
		this.urlLink = urlLink;
	}
	public String getUrlName() {
		return urlName;
	}
	public void setUrlName(String urlName) {
		this.urlName = urlName;
	}
}

ibatis的映射文件为:
<sqlMap>    
    <insert id="insert" parameterClass="com.ccg.ciic.proxy.domain.TaskDeliveryUrl">
        insert into TaskDeliveryURL(urlName, urlLink) values(#urlName#,#urlLink#)
        <selectKey resultClass="long" keyProperty="urlId" >  
			SELECT @@IDENTITY AS urlId
		</selectKey>
    </insert>
</sqlMap>


这样在将一个TaskDeliveryUrl对象的urlName和urlLink属性注入到映射文件,执行insert操作后,自生成的urlId同时被注入到该TaskDeliveryUrl对象的urlId属性中。
分享到:
评论

相关推荐

    ibatis3批量插入

    通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...

    ibatis的批量插入DAO实例

    4. **编写Service层逻辑**:在Service层,我们可以调用DAO的批量插入方法,准备数据并执行操作。 ```java @Service public class UserService { @Autowired private UserMapper userMapper; public void ...

    ibatis教程_插入一个实体对象.rar

    在本教程中,我们将深入探讨如何使用iBATIS框架来插入一个实体对象。iBATIS是一个优秀的持久层框架,它允许开发人员将SQL语句直接嵌入Java代码中,简化了数据库操作。以下是对这个主题的详细讲解: 一、iBATIS简介 ...

    利用ibatis 生成代码

    ### 利用ibatis框架生成代码:自动化与效率提升 #### 核心概念与优势解析 **ibatis**,现在通常被称为**MyBatis**,是一个支持普通SQL查询、存储过程以及高级映射的优秀开源持久层框架。ibatis消除了几乎所有的...

    08_ibatis教程_sql主键生成方式.zip

    1. **手工指定主键**:这是最基础的方式,开发人员在插入数据时手动为新记录生成主键值。适用于主键是自增整数或由业务逻辑决定的情况。 2. **序列/序列化**:在Oracle等数据库中,可以创建序列来生成唯一的主键值...

    MybatisPlus中插入数据后获取该对象主键值的实现

    在MybatisPlus中,插入数据并获取对象的主键值是一个常见的需求,特别是在需要跟踪新插入记录的唯一标识时。MybatisPlus提供了一种简便的方式来实现这一功能。本篇文章将详细解释如何在MybatisPlus中实现这一操作,...

    ibatis总结 ibatis ibatis ibatis ibatis

    - 在编写SQL时,应避免使用全模糊匹配`LIKE '%text%'`,而应尽可能使用带有前缀或后缀的模糊匹配,如`LIKE 'text%'`,这可以显著提升查询效率。 - 使用`EXISTS`子查询通常比直接关联查询更高效,尤其是在数据量大...

    ibatis sqlserver代码自动生成

    本文将围绕"Ibatis SQLServer代码自动生成"这一主题,详细讲解如何利用工具或方法自动生成与SQLServer配合的Ibatis代码,以便提高开发效率。 首先,Ibatis允许我们定义SQL语句、存储过程和高级映射,将数据库访问...

    ibatis自动生成工具

    在开发过程中,Ibatis可以极大提高开发效率,减少手动编写SQL和DAO(Data Access Object)实体类的工作量。本文将详细介绍Ibatis自动生成工具及其在生成DAO和实体类中的应用。 **一、Ibatis自动生成工具** Ibatis...

    ibatis demo,ibatis例子,ibatis示例

    在ibatis demo中,我们可能还会看到如何配置Spring与Ibatis的集成,以便利用Spring的依赖注入和事务管理能力。这通常涉及`SqlSessionFactoryBean`的配置以及Mapper接口的扫描和装配。 通过这个demo,你可以了解到...

    ibatis应对批量update

    在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,ibatis(现已更名为MyBatis)...

    ibatis乱码解决方法(ibatis独立)

    在IT行业中,数据库操作是必不可少的一部分,而Ibatis作为一款流行的Java持久层框架,它使得SQL与Java代码更好地结合,提供了灵活的数据库操作方式。然而,数据处理时遇到的编码问题,如乱码,常常会给开发者带来...

    ibatis代码自动生成

    本篇文章将深入探讨Ibatis代码自动生成的相关知识点,以及如何利用工具提高开发效率。 1. Ibatis简介: Ibatis作为轻量级的ORM(对象关系映射)框架,其核心功能是通过XML或注解的方式将Java对象与SQL语句进行映射...

    iBATIS缓存的使用方法

    本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL映射文件中应用这些缓存设置。 #### 一、缓存的基本概念 缓存是存储数据的一种临时区域,目的是减少重复查询数据库...

    08_传智播客ibatis教程_sql主键生成方式

    5. **手动指定**:在某些情况下,主键可能由业务逻辑决定,例如用户ID等,此时可在插入数据时直接提供主键值。 了解了这些主键生成策略后,开发者可以根据实际项目需求选择合适的方法。在Ibatis的映射文件中,`...

    ibatis入门

    在 Java 代码中调用对应的 `Mapper` 接口方法,传入需要插入的对象。 - **读取(Read)**: 使用 `select` 标签定义查询语句,可以使用参数绑定。在 Java 代码中,调用 `selectOne` 或 `selectList` 方法获取单个...

    ibatis 使用手册

    - **Insert**: 插入数据,支持自动获取自增主键值。 - **Update**: 更新数据,可以根据条件更新特定记录。 - **Delete**: 删除数据,根据指定条件删除匹配的记录。 **iBatis SQL Maps入门教程** 入门教程通常从...

    ibatis的dtd文件

    在学习Ibatis时,直接阅读DTD文件是一种有效的方法。通过理解DTD中的各个元素及其属性,可以更准确地掌握Ibatis的配置语法,从而编写出符合规范的XML配置。同时,将这些DTD文件导入Eclipse等IDE,可以得到代码提示和...

Global site tag (gtag.js) - Google Analytics