我使用 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
我使用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
我有一个要求,我必须在数据库中插入一行并获得密钥(身份).我想到了使用SimpleJdbcInsert.我将对象传递JdbcTemplate给我SimpleJdbcInsert和执行方法executeAndReturnKey().
同样可以做到用update()的方法,JdbcTemplate通过设置PreparedStatement,而不是参数地图.
我只是想知道JdbcTemplate在性能方面是否更好,我应该在SimpleJdbcInsert上使用它吗?如果是这样,那么它的卓越性能是什么原因呢?
注意:我不是插入一批记录而是仅插入一条记录.
谢谢
performance spring spring-jdbc jdbctemplate simplejdbcinsert