Problemas con traspaso de info a Bases de datos SQL
Quisiera saber como hacer la inserci贸n en dos tablas una PERSONA y otra DEPARTAMENTO
Bueno, yo ya logro insertar datos en Persona, pero no logro enviar datos a DEPARTAMENTO a la misma vez.
por favor alguien puede darme soluci贸n, este es mi c贸digo:
{
String dsn = "prueba_jsp";
String database = "prueba_jsp";
String user = "prueba_jsp";
String password = "";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
try
{
System.out.println("dsn "+dsn+" database "+database+" user "+user+" pass "+password+" driver "+driver);
conn = new Conexionsqlserver(dsn,database,user,password,driver);
//new WaitConnection(conn);
conn.open();
}
catch (Exception e)
{
System.out.println("Error en la creacion de la conexionsqlserver");
//e.printStackTrace();
//System.exit(1);
}
System.out.println("Conexion ok");
}
//Metodo que guarda el nombre de una persona en la base de datos
public int ingresarDatos(PersonaBD laPersonaBD)
{
String nombre = laPersonaBD.getNombre();
String snombre = laPersonaBD.getSnombre();
String rut = laPersonaBD.getRut();
String papellido = laPersonaBD.getPapellido();
String mapellido = laPersonaBD.getMapellido();
String ciudad = laPersonaBD.getCiudad();
String ndepto = laPersonaBD.getNdepto();
String nodepto = laPersonaBD.getNodepto();
String ubi = laPersonaBD.getUbi();
String fons = laPersonaBD.getFons();
int ingresado=0;
String sql="insert into personas values('"+ nombre +"','"+ snombre +"','"+ rut +"','"+ papellido +"','"+ mapellido +"','"+ ciudad +"') departamentos values('"+ ndepto +"','"+ nodepto +"','"+ ubi +"','"+ fons +"')";
ingresado=conn.insertar(sql);
return 2;
}
El Formulario lo tengo en formato HTML y este es el codigo:
<%@page import="logica.ControladorDatos"%>
<jsp:useBean id="datos" class="logica.ControladorDatos" scope="session"/>
<jsp:setProperty name="datos" property="*"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ingresar Nombre</title>
</head>
<body>
<%
int ingresado = datos.ingresarDatos(datos.getNombre(),datos.getSnombre(),datos.getRut(),datos.getPapellido(),datos.getMapellido(),datos.getCiudad(),datos.getNdepto(),datos.getNodepto(),datos.getUbi(),datos.getFons());
if (ingresado == 1)
{
out.print("<br><b><u>AVISO:</u><br><br></b> <i>Los datos fueron correctamente ingresados en nuestra Base de Datos. Por favor haga clic en Atr谩s para ingresar otro registro o Simplemente Cierre la ventana.</i><br><br><br><br>");
out.print("<center><table border><td><b>DATOS PERSONALES</b></td></table>");
out.print("<center><table border><tr><td><br><u><b>RUT:</b></u><td><i>");
out.print(datos.getRut());
out.print("</i><tr><td><br><u><b>NOMBRE:</b></u><td><i>");
out.print(datos.getNombre());
out.print("</i><tr><td><br><u><b>SEGUNDO NOMBRE:</b></u><td><i>");
out.print(datos.getSnombre());
out.print("</i><tr><td><br><u><b>APELLIDO PATERNO:</b></u><td><i>");
out.print(datos.getPapellido());
out.print("</i><tr><td><br><u><b>APELLIDO MATERNO:</b></u><td><i>");
out.print(datos.getMapellido());
out.print("</i><tr><td><br><u><b>CIUDAD:</b></u><td><i>");
out.print(datos.getCiudad());
}
else
{
out.print("<b>ERROR:<br> <i>Los Datos ingresados no pudieron ser almacenados en Nuestra Base de Datos, por favor revise los datos o Ingrese nuevamente.</i></b>");
}
%>
</body>
</html>
Saludos.
Bueno, yo ya logro insertar datos en Persona, pero no logro enviar datos a DEPARTAMENTO a la misma vez.
por favor alguien puede darme soluci贸n, este es mi c贸digo:
{
String dsn = "prueba_jsp";
String database = "prueba_jsp";
String user = "prueba_jsp";
String password = "";
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
try
{
System.out.println("dsn "+dsn+" database "+database+" user "+user+" pass "+password+" driver "+driver);
conn = new Conexionsqlserver(dsn,database,user,password,driver);
//new WaitConnection(conn);
conn.open();
}
catch (Exception e)
{
System.out.println("Error en la creacion de la conexionsqlserver");
//e.printStackTrace();
//System.exit(1);
}
System.out.println("Conexion ok");
}
//Metodo que guarda el nombre de una persona en la base de datos
public int ingresarDatos(PersonaBD laPersonaBD)
{
String nombre = laPersonaBD.getNombre();
String snombre = laPersonaBD.getSnombre();
String rut = laPersonaBD.getRut();
String papellido = laPersonaBD.getPapellido();
String mapellido = laPersonaBD.getMapellido();
String ciudad = laPersonaBD.getCiudad();
String ndepto = laPersonaBD.getNdepto();
String nodepto = laPersonaBD.getNodepto();
String ubi = laPersonaBD.getUbi();
String fons = laPersonaBD.getFons();
int ingresado=0;
String sql="insert into personas values('"+ nombre +"','"+ snombre +"','"+ rut +"','"+ papellido +"','"+ mapellido +"','"+ ciudad +"') departamentos values('"+ ndepto +"','"+ nodepto +"','"+ ubi +"','"+ fons +"')";
ingresado=conn.insertar(sql);
return 2;
}
El Formulario lo tengo en formato HTML y este es el codigo:
<%@page import="logica.ControladorDatos"%>
<jsp:useBean id="datos" class="logica.ControladorDatos" scope="session"/>
<jsp:setProperty name="datos" property="*"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ingresar Nombre</title>
</head>
<body>
<%
int ingresado = datos.ingresarDatos(datos.getNombre(),datos.getSnombre(),datos.getRut(),datos.getPapellido(),datos.getMapellido(),datos.getCiudad(),datos.getNdepto(),datos.getNodepto(),datos.getUbi(),datos.getFons());
if (ingresado == 1)
{
out.print("<br><b><u>AVISO:</u><br><br></b> <i>Los datos fueron correctamente ingresados en nuestra Base de Datos. Por favor haga clic en Atr谩s para ingresar otro registro o Simplemente Cierre la ventana.</i><br><br><br><br>");
out.print("<center><table border><td><b>DATOS PERSONALES</b></td></table>");
out.print("<center><table border><tr><td><br><u><b>RUT:</b></u><td><i>");
out.print(datos.getRut());
out.print("</i><tr><td><br><u><b>NOMBRE:</b></u><td><i>");
out.print(datos.getNombre());
out.print("</i><tr><td><br><u><b>SEGUNDO NOMBRE:</b></u><td><i>");
out.print(datos.getSnombre());
out.print("</i><tr><td><br><u><b>APELLIDO PATERNO:</b></u><td><i>");
out.print(datos.getPapellido());
out.print("</i><tr><td><br><u><b>APELLIDO MATERNO:</b></u><td><i>");
out.print(datos.getMapellido());
out.print("</i><tr><td><br><u><b>CIUDAD:</b></u><td><i>");
out.print(datos.getCiudad());
}
else
{
out.print("<b>ERROR:<br> <i>Los Datos ingresados no pudieron ser almacenados en Nuestra Base de Datos, por favor revise los datos o Ingrese nuevamente.</i></b>");
}
%>
</body>
</html>
Saludos.
Lo que quieres hacer no se puede pq la instruccion sql no cumple con la sintaxis del Insert asi q el parser nunca la va a compilar peor aun ejecutar, lo que tienes q hacer es ejecutar en dos Insert separados teniendo en cuenta los chequeos de integridad referencial adm谩s de utilizar transacciones o algun otro medio que te garantize la integridad de los datos, bueno esto depende de los requerimientos de tu sistema.
