标签: simplejdbcinsert

在 SimpleJdbcInsert 对象中指定 Oracle Sequence 以从 Oracle Sequence 生成密钥

我使用 SimpleJdbcInsert 作为,

SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource).withTableName(TABLE_NAME).withSchemaName(SCHEMA_NAME);

Map<String, Object> namedParameterMap = new HashMap<String, Object>();
namedParameterMap.put("ID", "MYSEQ.NEXTVAL");
namedParameterMap.put("COLUMN1NAME",obj1.getColumn1Value());
namedParameterMap.put("COLUMN2NAME", obj1.getColumn2Value());

simpleJdbcInsert.withoutTableColumnMetaDataAccess().execute(namedParameters);
Run Code Online (Sandbox Code Playgroud)

但它仅对 ID 列引发错误,其他列工作正常,我通过注释掉 ID 列来确认这一点。

java.lang.NumberFormatException: null
Run Code Online (Sandbox Code Playgroud)

我检查了我的 Oracle 序列,它工作正常。我检查了很多博客,但找不到使用 Oracle 序列和 SimpleJdbcInsert 的合适博客。

oracle spring-jdbc jdbctemplate simplejdbcinsert database-sequence

5
推荐指数
1
解决办法
2010
查看次数

SimpleJdbcInsert等效于更新

我使用Spring的SimpleJdbcInsert类来创建实体 - 例如:

final SimpleJdbcInsert insert = new SimpleJdbcInsert(dataSource).withTableName("abc");

insert.execute(new BeanPropertySqlParameterSource(abc));
Run Code Online (Sandbox Code Playgroud)

是否有一些相当于此类进行更新?例如,假设我们正在处理单列主键,下面的内容将是一个方便的接口:

final SimpleJdbcUpdate update = new SimpleJdbcUpdate(dataSource).withTableName("abc").withIdColumn("abcId");

update.execute(new BeanPropertySqlParameterSource(abc));
Run Code Online (Sandbox Code Playgroud)

Spring是否在某处提供了这种开箱即用的功能?

谢谢Jay

spring jdbc sql-update simplejdbcinsert

4
推荐指数
3
解决办法
8668
查看次数

Spring SimpleJdbcInsert vs JdbcTemplate

我有一个要求,我必须在数据库中插入一行并获得密钥(身份).我想到了使用SimpleJdbcInsert.我将对象传递JdbcTemplate给我SimpleJdbcInsert和执行方法executeAndReturnKey().

同样可以做到用update()的方法,JdbcTemplate通过设置PreparedStatement,而不是参数地图.

我只是想知道JdbcTemplate在性能方面是否更好,我应该在SimpleJdbcInsert上使用它吗?如果是这样,那么它的卓越性能是什么原因呢?

注意:我不是插入一批记录而是仅插入一条记录.

谢谢

performance spring spring-jdbc jdbctemplate simplejdbcinsert

2
推荐指数
1
解决办法
3048
查看次数