Hola, tengo el siguiente formulario para subir archivos al servidor.
<form action=recibe.jsp method=post enctype=multipart/form-data>
<table>
<tr>
<td>
Fichero
</td>
<td>
<input type=file name=fichero>
</td>
</tr>
<tr>
<td colspan=2>
<input type=submit value=enviar name=enviar>
</td>
</tr>
</table>
</form>
En recibe.jsp guardo ese archivo en el disco. Lo que me gustaria hacer es guardar el nombre del archivo subido en una base de datos. En recibe.jsp obtengo el nombre del archivo (en un String) y he encontrado el siguiente fragmento de codigo para insertarlo en la base de datos:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance ();
canal=DriverManager.getConnection("jdbc:mysql://localhost/prueba","admin","admin");
instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSIT IVE,
ResultSet.CONCUR_UPDATABLE);
} catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};
String q="insert into nombre_tabla values(nom); ";
try {
int n=instruccion.executeUpdate(q);
out.println("REGISTRO INSERTADO");
} catch(SQLException e) {out.println(e);};
try{
instruccion.close();
canal.close();
} catch(SQLException e) {out.println(e);};
Donde nom es el nombre del archivo. Cuando lo hago asi me da el aviso de REGISTRO INSERTADO, pero en la base de datos lo que se almacena es null. Si por el contrario pongo
String q="insert into nombre_tabla values('ELENA'); ";
SI que se guarda en la base de datos. ¿Sabeis que puede estar pasando?
Muchas gracias, un saludo!