Como se añaden un registro en jdbc?
Hola, estoy trabajando con una bd de access e intento añadir un nuevo registro pero me da error de excepecion sql, la sentencia que he utilizado es esta
"Insert into persona (Dni, Nombre, Apellido) values (1,'raul','yo');"
me podeis decir que hago mal? muchas gracias
"Insert into persona (Dni, Nombre, Apellido) values (1,'raul','yo');"
me podeis decir que hago mal? muchas gracias
No puedes dar más pistas?
El texto de la excepción SQL?
Por lo que veo, tienes el DNI como numérico y si no ese es el fallo (si no es numérico sera [...] VALUES ('1','raul','tu')[...])
De todos modos los DNI no son numéricos.
Saludos!
El texto de la excepción SQL?
Por lo que veo, tienes el DNI como numérico y si no ese es el fallo (si no es numérico sera [...] VALUES ('1','raul','tu')[...])
De todos modos los DNI no son numéricos.
Saludos!
import java.net.URL;
import java.sql.*;
class Bases {
public static void main (String args[]) {
//se le pasa el enlace ODBC creado a la base de datos
String url = "jdbc:odbc:Basededatos";
//sentencia SQL que queramos realizar en la Base de Datos
String query = "SELECT * FROM Persona order by Nombre";
String query2 = "INSERT INTO Persona(DNI,Nombre,Apellido,Direccion) values (6,'Alvara','Velasca','chupa-chups')";
//String query = "Create table RAUL_GUAPO(ESGUAPO float ,nombre varchar(20))" ;
try {
// se carga el jdbc-odbc bridge driver
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
//con esta linea que sigue mostrara todo lo que hace al cargar los
//drivers
//DriverManager.setLogStream(System.out);
// Intento de conectar al driver. Cada uno
// de los drivers serán ejecutados hasta
// que uno pueda procesar en esta URL
Connection con = DriverManager.getConnection (url);
// Si no podemos conectar se realizara un Excepción
// si no es asi se podrá conectar satisfactoriamente
// Chequeamos y vemos por pantalla los warnings generados
// por la conexion.
checkForWarning (con.getWarnings ());
// cogemos el objeto DatabaseMetaData y mostramos
// informacion de la conexion
DatabaseMetaData dma = con.getMetaData ();
System.out.println("nConnected to " + dma.getURL());
System.out.println("Driver " +
dma.getDriverName());
System.out.println("Version " +
dma.getDriverVersion());
System.out.println("");
// creamos un objeto Statement para poder enviar
// instrucciones SQL al driver
Statement stmt = con.createStatement ();
// enviamos una peticion, creando un objeto ResulSet
ResultSet rs = stmt.executeQuery (query);
// Mostramos todas las columnas y filas
dispResultSet (rs);
// cerramos el ResultSet
ResultSet rs2 = stmt.executeQuery (query2);
rs.close();
rs2.close();
// cerramos el statement
stmt.close();
// cerramos la conexion
con.close();
}
catch (SQLException ex) {
// Una SQLException es generada y mostrado el error
// podria haber multiples objetos de error
System.out.println ("n*** SQLException caught ***n");
/*while (ex != null) {
System.out.println ("SQLState: " +
ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage ());
System.out.println ("Vendor: " +
ex.getErrorCode ());
ex = ex.getNextException ();
System.out.println ("");
}*/
}
catch (java.lang.Exception ex) {
// Para cualquier otro tipo de error
ex.printStackTrace ();
}
}
esto es un ejemplo que me baje de internet, y que estoy intentando modificar para ir aprendiendo yo por mi cuenta, por eso tengo los DNI como numericos y tengo tanto comentario, si me pudieras ayudar te lo agradeceria
import java.sql.*;
class Bases {
public static void main (String args[]) {
//se le pasa el enlace ODBC creado a la base de datos
String url = "jdbc:odbc:Basededatos";
//sentencia SQL que queramos realizar en la Base de Datos
String query = "SELECT * FROM Persona order by Nombre";
String query2 = "INSERT INTO Persona(DNI,Nombre,Apellido,Direccion) values (6,'Alvara','Velasca','chupa-chups')";
//String query = "Create table RAUL_GUAPO(ESGUAPO float ,nombre varchar(20))" ;
try {
// se carga el jdbc-odbc bridge driver
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
//con esta linea que sigue mostrara todo lo que hace al cargar los
//drivers
//DriverManager.setLogStream(System.out);
// Intento de conectar al driver. Cada uno
// de los drivers serán ejecutados hasta
// que uno pueda procesar en esta URL
Connection con = DriverManager.getConnection (url);
// Si no podemos conectar se realizara un Excepción
// si no es asi se podrá conectar satisfactoriamente
// Chequeamos y vemos por pantalla los warnings generados
// por la conexion.
checkForWarning (con.getWarnings ());
// cogemos el objeto DatabaseMetaData y mostramos
// informacion de la conexion
DatabaseMetaData dma = con.getMetaData ();
System.out.println("nConnected to " + dma.getURL());
System.out.println("Driver " +
dma.getDriverName());
System.out.println("Version " +
dma.getDriverVersion());
System.out.println("");
// creamos un objeto Statement para poder enviar
// instrucciones SQL al driver
Statement stmt = con.createStatement ();
// enviamos una peticion, creando un objeto ResulSet
ResultSet rs = stmt.executeQuery (query);
// Mostramos todas las columnas y filas
dispResultSet (rs);
// cerramos el ResultSet
ResultSet rs2 = stmt.executeQuery (query2);
rs.close();
rs2.close();
// cerramos el statement
stmt.close();
// cerramos la conexion
con.close();
}
catch (SQLException ex) {
// Una SQLException es generada y mostrado el error
// podria haber multiples objetos de error
System.out.println ("n*** SQLException caught ***n");
/*while (ex != null) {
System.out.println ("SQLState: " +
ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage ());
System.out.println ("Vendor: " +
ex.getErrorCode ());
ex = ex.getNextException ();
System.out.println ("");
}*/
}
catch (java.lang.Exception ex) {
// Para cualquier otro tipo de error
ex.printStackTrace ();
}
}
esto es un ejemplo que me baje de internet, y que estoy intentando modificar para ir aprendiendo yo por mi cuenta, por eso tengo los DNI como numericos y tengo tanto comentario, si me pudieras ayudar te lo agradeceria
SQLState : null
Message: No ResultSet was produced
Vendor: 0
este es el error que me da
gracias!
Message: No ResultSet was produced
Vendor: 0
este es el error que me da
gracias!
Las sentencias que no producen ResultSet (INSERT, UPDATE, CREATE TABLE,...)
se ejecutan con executeUpdate(query2);
y devuelven un int con el numero de filas afectadas o algo así
Has hecho un INSERT con un executeQuery
Saludos!
se ejecutan con executeUpdate(query2);
y devuelven un int con el numero de filas afectadas o algo así
Has hecho un INSERT con un executeQuery
Saludos!