Cita:
Iniciado por Erume Este es el código completo de la consulta a la base de datos.
¿Sabeis si los drivers de mysql soportan ese "scrollable?.
Un saludo.
Código:
Connection connection;
Class.forName("com.mysql.jdbc.Driver"); //Construyendo el driver con el conector mysql
String url = "jdbc:mysql://localhost/Miproyecto"; //La dirección de la base de datos
String usr = "miusuario"; //El usuario de la base de datos
String pass = "micontraseña"; //La contraseña de la base de datos
String var1 = request.getParameter("var1");
String sql = "Select * From MiTabla Where var1='" + var1 +
"';";
connection = DriverManager.getConnection(url, usr, pass);
Statement statement = connection.createStatement();
ResultSet res;
//Ejecutamos la consulta sql, generada arriba
res = statement.executeQuery(sql);
res.last();
int length = res.getRow();
res.first();
while(res.next()){
//Aquí recorro la consulta
}
Para que el resulset sea "scrollable" debes pasarle los siguientes parametros. (Sacado de la propia API)
Código:
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
Bien, varias cosas, primero, con la conexion lo mejor que deberias hacer es declarar una clase con un singleton para el objeto conexion. Y sin matarte mucho la cabeza, ni usar EJB (
http://www.dcc.uchile.cl/~jbarrios/J2EE/node53.html aqui tienes un buen tuto sobre ellos por si te animas), en el constructor inicias esa conexion y metes la conexion en la sesion. Y de ahi la reutilizas.
Segundo, tal y como creas la consulta de la base de datos tienes un agujero de seguridad impresionante, hazlo con un PrepareStatement:
Código:
String sql = "Select * From MiTabla Where var1= ?";
PreparedStatement statement = connection.prepareStatement(sql);
ps.setString(1, var1);
res = ps.executeQuery();
Un saludo.