Código até programar

Programação em Java

Temos várias maneiras de fazer Uma inserção contra um banco de dados usando o JDBC. Mas o mais simples de tudo é executar uma instrução de inserção do SQL.

É por isso que a primeira coisa que vamos ver é a estrutura desse julgamento:

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

Onde o (s) campo (s) são os nomes das colunas na tabela na qual queremos inserir valores. Se quisermos preencher todos os dados das colunas, não é necessário colocar esses campos. Os valores serão, em ordem rigorosa, aqueles que correspondem às colunas da tabela.

No exemplo, usaremos a tabela do livro. Que passamos para detalhar um pouco mais:

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

Vamos ver as etapas que devem ser dadas para executar a inserção através de uma conexão JDBC.

A primeira coisa é fazer a conexão no banco de dados. Para isso, precisamos saber o URL e os drivers de banco de dados. No nosso caso, nos apoiamos no MySQL, seria algo como o que se segue:

// Definimos el driver y la urlString sDriver = "com.mysql.jdbc.Driver";String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";

com os drivers e URL, basta ter que obter a conexão (conexão de classe) via usuário e senha.

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

Uma vez obtida a conexão, vamos preparar a instrução Inserir usando um estadiador

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

Um muito importante é que, ao montar a instrução Inserir, não definimos os valores da declaração. Em vez disso, colocamos interrogações (?) Que serão posteriormente substituídos por valores.

Isso é feito para que a instrução Inserir possa ser reutilizada com valores diferentes e ser coroada pelos diferentes pontos (cache de conexão de Os drivers, cache do banco de dados, …).

Para preencher os valores, simplesmente podemos alimentar os métodos SetXXX no prepareStatement. O valor do XXX dependerá do tipo de dados que lidamos: setstring, setDate, stint, …

Vamos ver como nós a atribuíamos em nosso 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);

Você só executará a frase. Quando a frase para executar não retorna um conjunto de resultados, não devemos usar o ExecuteQuey (), mas devemos usar ExecuteUpdate (). Isso é aplicável a inserir, atualizar e excluir.

stmt.executeUpdate();

O valor retornado por esta declaração é 1 para instruções de inserção, atualização e excluir e 0 para instruções SQL que Não retorne nada.

No final do nosso programa, não podemos esquecer de fechar as conexões do banco de dados 😉

Mas o que acontece se o valor a ser inserido (em sua senha ) já existe no banco de dados? Bem, uma sentença SQLException vai pular. Nesta exceção, podemos recuperar o SQLSTATE e SQLErrorCode, que darão informações de erro.

33 Compartilhar

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *