Estoy usando la plantilla JDBC y quiero leer desde una base de datos usando declaraciones preparadas. Repito sobre muchas líneas en un archivo .csv, y en cada línea ejecuto algunas consultas de selección de SQL con los valores correspondientes.Uso de declaraciones preparadas con JDBCTemplate
Quiero acelerar mi lectura de la base de datos, pero no sé cómo hacer que la plantilla JDBC funcione con las declaraciones preparadas.
Está el PreparedStatementCreator y el PreparedStatementSetter. Como en this example ambos se crean con clases internas anónimas. Pero dentro de la clase PreparedStatementSetter no tengo acceso a los valores que quiero establecer en la declaración preparada.
Como estoy iterando a través de un archivo .csv, no puedo codificarlos como una cadena porque no los conozco. Tampoco puedo pasarlos a PreparedStatementSetter porque no hay argumentos para el constructor. Y establecer mis valores al final sería tonto también.
Estaba acostumbrado a la creación de declaraciones preparadas siendo bastante simple. Algo así como
PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate():
como en este Java tutorial.
Esto funcionaría, pero los valores que quiero establecer están fuera de la clase anónima interna. Dentro de la clase debería haber algo como 'updateSales.setString (2, fileRow.getName())' pero no puedo acceder al formulario 'fileRow' dentro de la clase. –
marque el archivo varRow como final – Inv3r53