ibatis的insert中使用序列

简介:

 

Oracle中创建序列

create sequence MYDB_SEQUENCE
increment by 1
start with 1
nomaxvalue
minvalue 1;

 

xml写法

<insert id="insert" parameterClass="Student">
 <selectKey resultClass="String" keyProperty="mid">
  SELECT  MYDB_SEQUENCE.NEXTVAL FROM DUAL
 </selectKey>
 <![CDATA[
  insert into Student(id,name,age)
  values(#mid#,#mname#,#mage#)
 ]]>
</insert>

 

我们为什么说使用序列会出现跳号的情况呢?

有两个人A和B,A先使用序列,插入了一条数据,这时候序列为1。

B又使用同一个序列,这时候序列为2。

这个时候A后使用该序列了,为3。那么A的表中从1直接到3了,这就跳号了。为了避免这种情况,不同的表可以使用不同的序列。

 

 

 

目录
相关文章
|
7月前
|
Java 测试技术 数据库
hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
|
4月前
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
45 5
|
6月前
|
SQL Oracle 关系型数据库
SQL中NEXTVAL获取序列值的应用场景与示例
SQL中NEXTVAL获取序列值的应用场景与示例
|
5月前
|
SQL Oracle Java
SQL中使用NEXTVAL获取序列值
SQL中使用NEXTVAL获取序列值
|
7月前
|
数据库连接 测试技术 数据库
什么是`with...as`语句?
【4月更文挑战第5天】`with...as`语句是Python中的上下文管理器,用于自动处理资源的分配和释放,常见于文件操作。基本语法是`with expression as variable:`,在代码块内使用`variable`操作资源,离开时资源自动关闭。示例中展示了文件操作,自定义上下文管理器(如数据库连接),以及`contextlib`模块的使用,简化资源管理
112 1
如何解决MyBatisPlus插入时生成的id为很大的数
如何解决MyBatisPlus插入时生成的id为很大的数
340 0
如何解决MyBatisPlus插入时生成的id为很大的数
|
SQL Java 数据库连接
SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
SSH项目,hibernate的查询操作出错org.hibernate.hql.ast.QuerySyntaxException
323 0
|
SQL Go
【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例
【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例目录 0、填充数据1、使用row_number()函数对订单进行编号,按照订单时间倒序。
13183 0
|
SQL Java 数据库连接
Hibernate中执行NativeSQL语句查询返回自定义类型的POJO实例的List(多表查询)
Hibernate中定义了hql的概念,简单地说就是,为java的码农提供了一套类似于sql的语法,但是数据表名变成了PO名,数据字段名变成了PO中属性成员名,并把这种语法称为hql。优点就是:hql看上去是面向对象的,码农不需要知道数据库中数据表的结构,只需要依据PO编写面向对象的数据库增删改查的语句。
4176 0