spring JdbcTemplate批量插入 怎么获得数据库自动增长的id

spring JdbcTemplate批量插入 怎么获得数据库自动增长的id,第1张

用for循环行吗?

int update(PreparedStatementCreator

psc, KeyHolder

generatedKeyHolder) throws DataAccessException

MYSQL可以这样

INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");

Statement暴露以下方法可以访问到主键:ResultSet getGeneratedKeys() throws SQLException;

为了简化该方法的使用,轻松获得RDBMS生成的主键,Spring内置了KeyHolder接口及GeneratedKeyHolder实现者。

下面的类的内置方法中都使用到了KeyHolder,可以使用他来访问主键。

JdbcTemplate: int update(PreparedStatementCreator psc,KeyHolder generatedKeyHolder) throws DateAccessException;

NamedParameterJdbcTemplate的两个update方法

SimpleJdbcInsert辅助类。

SqlUpdate辅助类。

等。

DataFieldMaxValueIncrementer继承链。

能够返回全局唯一、递增的取值,这种特性是企业应用的常见需求,考虑到RDBMS的不同情况,Spring提供了DataFieldMaxValueIncrementer接口,这些方法返回唯一的、递增的、不同类型的取值。

各个数据库底层都以此类为接口,来实现具体的业务逻辑。

比如:Oracle:OracleSequenceMaxValueIncrementer实现类采用Oracle数据库支持的序列发生器。

HsqlMaxValueIncrementer采用HSQLDB的表实现,从而模拟了序列发生器的行为等。

类似的还有:

MysqlMaxValueIncrementer

DerbyMaxValueIncrementer

SybaseMaxValueIncrementer

SqlServerMaxValueIncrementer

PostgreSqlSequenceMaxValueIncrementer

DB2SequenceMaxValueIncrementer

H2SequenceMaxValueIncrementer等等

Spring JDBC对行集的支持:

RowSet,用于它能够以JavaBean方式同RDBMS数据进行交互,因此比ResultSet更为灵活。

JdbcTemplate内置queryForRowSet()方法集合。

NamedParameterJdbcTemplate内置的queryForRowSet()方法集合。

都可以很方便的获取到RowSet对象,方便数据库的 *** 作。

ij> create table bbb(

> id int generated by default as identity,

> name varchar(20),

> primary key (id));

已插入/更新/删除 0 行

ij> insert into bbb(name) values('user1');

已插入/更新/删除 1 行

ij> insert into bbb(name) values('user2');

已插入/更新/删除 1 行

ij> select from bbb;

ID |NAME

--------------------------------

1 |user1

2 |user2

以上就是关于spring JdbcTemplate批量插入 怎么获得数据库自动增长的id全部的内容,包括:spring JdbcTemplate批量插入 怎么获得数据库自动增长的id、jdbcTemplate插入MYSQL时怎么返回主键ID、用derby驱动jdbc时如何设置自动编号的ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9316856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存