Boa tarde estimados, abaixo segue o meu código, se puderem apontar alguma melhoria:
package br.com.crud.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
/**
* <b>Classe criada para testar inserções no banco HQSQLDB</b>
*
* @author <i>RCARAUJO - Renato Cézar Silva de Araújo.</i>
* @category Testes
* @since 04/02/2020 - 11:27hs
* @since 12/02/2020 - 13:13
* @version 1.0
*/
public class TestaInsercaoModificado {
private static String nome;
private static String descricao;
private static String entrada;
private static Scanner ler = new Scanner(System.in);
public static String getNome() {
return nome;
}
public static void setNome(String nome) {
TestaInsercaoModificado.nome = nome;
}
public static String getDescricao() {
return descricao;
}
public static void setDescricao(String descricao) {
TestaInsercaoModificado.descricao = descricao;
}
public static String getEntrada() {
return entrada;
}
public static void setEntrada(String entrada) {
TestaInsercaoModificado.entrada = entrada;
}
public static Scanner getLer() {
return ler;
}
public static void main(String[] args) throws SQLException {
System.out.println("Informe o Nome: ");
setNome(getLer().next());
System.out.println("Informe a Descrição: ");
setDescricao(getLer().next());
Connection connection = Database.getConnection();
connection.setAutoCommit(false);
try {
String sql = "insert into produto (nome, descricao) values (?, ?)";
PreparedStatement statement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
adiciona(getNome(), getDescricao(), statement);
connection.commit();
statement.close();
} catch (Exception e) {
e.printStackTrace();
connection.rollback();
}
connection.close();
}
private static void adiciona(String nome, String descricao, PreparedStatement statement) throws SQLException {
if(getNome().equals("Teste") || getNome().equals("teste")) {
throw new IllegalArgumentException("Problema ocorrido na inserção...");
}
nome = getNome();
descricao = getDescricao();
statement.setString(1, getNome());
statement.setString(2, getDescricao());
boolean resultado = statement.execute();
System.out.println(resultado);
ResultSet generatedKeys = statement.getGeneratedKeys();
while (generatedKeys.next()) {
long id = generatedKeys.getLong("id");
System.out.println("id gerado: " + id);
}
generatedKeys.close();
}
}