Como obter auto-generated keys em uma classe Java

Aprenda nesta dica como criar auto-generated keys através da API JDBC.

Como obter auto-generated keys em uma classe Java

As bases de dados fornecem uma característica de auto-incremento que é usado geralmente para IDs. JDBC API tem também um método para buscar o último ID gerado.

O exemplo abaixo gera um ID e usa-o para atualizar a coluna de uma tabela.

import java.sql.*;

public class testKeys 
{
public static void main(String[] args) 
{
DB db = new DB();
Connection conn =
            
db.dbConnect("jdbc:jtds:sqlserver://localhost:1433/tempdb","sa","");
db.performKeys(conn);
}
}

class DB
{
public DB() {}

public Connection dbConnect(String db_connect_string, 
String db_userid,String db_password)
{
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(
db_connect_string, db_userid, db_password);
System.out.println("conectado");
return conn;

}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}

public void performKeys(Connection conn)
{
String query;
PreparedStatement pstmt;

try
{
query = "insert into customer (name,category) "+
"values ('name1','temp')";
pstmt = conn.prepareStatement(query, 
Statement.RETURN_GENERATED_KEYS);

pstmt.executeUpdate();
ResultSet keys = pstmt.getGeneratedKeys();

int count = 0;

keys.next();
int key = keys.getInt(1);

query ="update customer set age =? where id =?";
pstmt = conn.prepareStatement(query);
pstmt.setFloat(126);
pstmt.setInt(2, key);
pstmt.executeUpdate();

keys.close();
pstmt.close();
conn.close();

}
catch (Exception e)
{
e.printStackTrace();
}
}

};

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados