Si no es mucha molestia, tengo un problema cuando cargo un formulario en jsp por ejemplo alta.jsp.. Lo que quiero es que los parametros que recibo del formulario se registren en 2 tablas ya lo hice pero no es la forma correcta... Mi pagina dice asi:
Numero de terminal: 54644
Activo: 5464564
Marca: Kingston
Status: Disponible
Tipo: DIMM
observaciones: Varias
Es solo un ejemplo yo tengo una tabla c_componente que es el catalogo de componentes... has de cuenta que todos esos registros que hace el usuario yo lo voy a registrar en una tabla componente pasando el id_c_componente para ver que es lo que esta registrano que componente.. Pero los campos de tipo y marca son diferentes a muchos componentes,, los otros digamos que son generales.. pero los que va a cambiar en la forma son esos 2 marca y tipo.. Y esos dos campos los tengo que insertar en otra tabla llamandose tabla memoria en la que tengo id tipo,marca,id_componente el ultimo es mi foreign key para unirla con la tabla componente...
Y asi me pasa con mas productos nose cual sea la forma mas conveniente de registrar datos de este formulario a 2 tablas nose si me explique, aqui te pongo el codigo de mi insert cuando inserto en cpu y en componente:
public boolean insertar(HttpServletRequest request)
{
PreparedStatement ps=null;
PreparedStatement ps1=null;
boolean ban=false;
try
{
int num_terminal=0, activo=0, num_serie=0, status=0, cpu_marca=0, id_padre=0, id=-1, id_c_componente=0, idCpu=0;
String tipo=null, modelo=null, color=null, observaciones=null, dependencia=null;
id = generaId();
idCpu = generaIdCpu();
id_c_componente = Integer.parseInt(request.getParameter("idComponent e"));
num_terminal = Integer.parseInt(request.getParameter("num_termina l"));
activo=Integer.parseInt(request.getParameter("acti vo"));
tipo=request.getParameter("tipo");
modelo=request.getParameter("modelo");
num_serie=Integer.parseInt(request.getParameter("n um_serie"));
observaciones=request.getParameter("observaciones" );
dependencia=request.getParameter("dependencia");
cpu_marca=Integer.parseInt(request.getParameter("m arca"));
status=Integer.parseInt(request.getParameter("stat us"));
color=request.getParameter("color");
String sql = null;
sql="INSERT INTO componente(id,id_c_componente,id_marca,num_activo, modelo,num_serie,id_status,observaciones,dependenc ia,id_padre,num_terminal) VALUES(?,?,?,?,?,?,?,?,?,?,?)";
ps=this.conn.prepareStatement(sql);
ps.setInt(1,id);
ps.setInt(2,id_c_componente);
ps.setInt(3,cpu_marca);
ps.setInt(4,activo);
ps.setString(5,modelo);
ps.setInt(6,num_serie);
ps.setInt(7,status);
ps.setString(8,observaciones);
ps.setString(9,dependencia);
ps.setInt(10,2);
ps.setInt(11,num_terminal);
String sql2=null;
sql2="INSERT INTO cpu(id,tipo,color,id_componente) VALUES (?,?,?,?)";
ps1=this.conn.prepareStatement(sql2);
ps1.setInt(1,idCpu);
ps1.setString(2,tipo);
ps1.setString(3,color);
ps1.setInt(4,id_c_componente);
if (ps.executeUpdate() > 0){
this.conn.commit();
ban = true;
}
if( ps != null){
ps.close();
ps = null;
}
if (ps1.executeUpdate() > 0){
this.conn.commit();
ban = true;
}
if( ps1 != null){
ps1.close();
ps1 = null;
}
}
catch(Exception e)
{
System.err.println("Componente.java");
e.printStackTrace();
}
finally
{
try
{
if (ps != null)
{
ps.close();
ps = null;
}
}
catch(Exception e)
{
System.err.println("Componente.java");
e.printStackTrace();
}
}
return ban;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
El problema de esto es que si yo selecciono por ejemplo otra opcion memoria en el caso de arriba como yo le digo al compilador que ahora el campo tipo y marca ya no son para cpu sino para la tabla de memoria.... Me podrias ayudar.... Vemos que el color es otro campo variable para cpu y ese campo debe ir solo en cpu... Claro en mi formulario si tengo color..