Pregunta

Intentando hacer una inserción, tengo: jdbcTemplate.update (" insert into .... " ;, new Object [] {foo.getId (), foo.getName ()}) foo.getId () devuelve un largo y getName () una cadena. Tengo " NÚMERO " como el tipo de identificación en Oracle, y varchar2 para el campo de nombre.

Recibo un problema desconocido de SQLtype. el método de actualización tiene una versión en la que no tengo que poner los tipos de SQL, pero ¿tengo que hacerlo? De ser así, ¿cómo?

¿Fue útil?

Solución

Supongo que te refieres al Spring Framework clase JdbcTemplate . Los métodos JdbcTemplate intentarán adivinar el java.sql.Type para referencias de valor, pero aparentemente no está adivinando correctamente en este caso.

Hay un par de formas de incluir el tipo:

El JdbcTemplate.update (String, Object []) [javadoc] ( http://static.springframework.org/spring/docs/2.5.x/api/org/springframework /jdbc/core/JdbcTemplate.html#update(java.lang.String , java.lang.Object [])) indica que puede pasar SqlParameterValue , que consiste en las java.sql.Type y un valor .

Alternativamente, puede usar JdbcTemplate.update (String, Object [], int []) pasando una matriz de java.sql.Type

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top