liña de código ata o programa

programación en Java

Temos varias formas de facer Unha inserción contra unha base de datos usando JDBC. Pero o máis sinxelo de todos é executar unha declaración de inserción SQL.

Por iso o primeiro que imos ver é a estrutura dese xuízo:

INSERT INTO tabla (campo1, campo2,... campoN) VALUES (valor1, valor2,... valorN)

onde os campos (s) son os nomes das columnas da táboa na que queremos inserir valores. Se queremos cubrir todos os datos das columnas, non é necesario poñer estes campos. Os valores serán, en orde rigorosa, aqueles correspondentes coas columnas da táboa.

No exemplo imos usar a táboa do libro. Que pasamos a detalles un pouco máis:

LIBROS isbn: char(13) idAutor: int(10) categoría: varchar(45) titulo: varchar(50) descripción: text

Vexamos os pasos que se deben dar para executar a inserción a través dunha conexión JDBC.

O primeiro é facer a conexión na base de datos. Para iso necesitamos coñecer a URL e os condutores de bases de datos. No noso caso, apoiámonos en MySQL, sería algo así como o que segue:

cos controladores e URL simplemente teremos que obter a conexión (conexión de clase) a través de usuario e contrasinal.

Connection con = null;Class.forName(sDriver).newInstance(); con = DriverManager.getConnection(sURL,"root","password");

Unha vez obtido a conexión, imos preparar a declaración de inserción usando unha preparación

stmt = con.prepareStatement("INSERT INTO libros VALUES (?,?,?,?,?)");

Unha cousa moi importante é que ao montar a declaración de inserción non definimos os valores da declaración. Pola contra, poñemos os interrogatorios (?) Que serán substituídos por valores posteriormente.

Isto faise para que a instrución de inserción poida ser reutilizada con diferentes valores e ser coroado polos diferentes puntos (caché de conexión de Os condutores, a caché da base de datos, …).

Para cubrir os valores, simplemente podemos alimentarse dos métodos SETXXX sobre a preparación. O valor de XXX dependerá do tipo de datos que manexemos: SetString, Settate, Stint, …

Vexamos como o asignaríamos no noso exemplo:

String sISBN = "84-9815-212-7";String sTitulo = "Yo, Claudio";String sDescripcion= "Supuesta autobiografía de Claudio...";String sCategoria = "novela histórica";int idAutor = 3; stmt.setString(1,sISBN);stmt.setInt(2,idAutor);stmt.setString(3,sTitulo);stmt.setString(4,sDescripcion);stmt.setString(5,sCategoria);

Só vai executar a frase. Cando a frase para executar non devolve un conxunto de resultados, non debemos usar executequey (), pero debemos usar executeupdate (). Isto é aplicable a inserir, actualizar e eliminar.

stmt.executeUpdate();

O valor devolto por esta afirmación é 1 para inserir, actualizar e eliminar e 0 declaracións para declaracións SQL que Non devolva nada.

Ao final do noso programa non podemos esquecernos de pechar as conexións da base de datos 😉

Pero que pasa se o valor a inserir (no seu contrasinal ) xa existe na base de datos? Ben, unha frase SQLException omitirase. Nesta excepción podemos recuperar o SQLSTate e SQLlerrorcode, que dará información de erro.

33 Share

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *