JdbcTemplate中返回oracle数据库中的自增长列主键报错

发布时间:2024-05-20 14:46 发布:上海旅游网

问题描述:

源码如下:
NamedParameterJdbcTemplate named=new NamedParameterJdbcTemplate(JDBCUtil.getDataSource());
String sql="insert into t_user(u_id,u_name,u_password,u_birthday,u_age) values(myseq.nextval,:userName,:password,:birthday,:age)";
BeanPropertySqlParameterSource property=new BeanPropertySqlParameterSource(user);
KeyHolder holder=new GeneratedKeyHolder();
named.update(sql, property,holder);
user.setUserId(holder.getKey().intValue());
运行后报错:
信息: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [insert into t_user(u_id,u_name,u_password,u_birthday,u_age) values(myseq.nextval,?,?,?,?)]; SQL state [null]; error code [17023]; 不支持的特性; nested exception is java.sql.SQLException: 不支持的特性
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:817)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:261)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:243)
at com.test1.NamedTemplateTest.addUser(NamedTemplateTest.java:58)
at com.test1.NamedTemplateTest.main(NamedTemplateTest.java:29)
Caused by: java.sql.SQLException: 不支持的特性
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
at oracle.jdbc.driver.DatabaseError.throwUnsupportedFeatureSqlException(DatabaseError.java:537)
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:2925)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:458)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:394)
at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:235)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:580)
... 5 more
请高人看看

问题解答:

JdbcTemplate中返回oracle数据库中的自增长列主键报错这个旅游问答期待您的解答,请登录账号或关注微信公众号回答这个问题。

热点新闻