Alguém pode me ajudar com alguns JDBC iniciantes?
Como desenvolvedor de C # novo em Java, achei que seria mais fácil se eu simplesmente mostrasse um pouco de código C # para poder ver quais são as chamadas Java JDBC equivalentes:
String myConnectionString = "...";
String mySql = "select name from people where id = @myId";
int myId = 123456;
List<Field> fields = new List<Field>();
using (SqlConnection conn = new SqlConnection(myConnectionString)
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(mySql,conn))
{
cmd.Parameters.AddWithValue("@myId", myId);
using(SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
String name = rdr.GetString(0);
fields.Add(name);
}
}
}
}
Agora eu sei que as instruções using acima fecharão o banco de dados com segurança se algo der errado, enquanto que com o java é um pouco mais complicado (tente ... finalmente ou algo assim). E em java, não tenho certeza do que exatamente precisa ser descartado ou fechado (ou o que seja) - apenas a conexão? Ou a declaração também?
Se você pudesse me ajudar, seria ótimo. Muito obrigado
edit: Eu realmente gosto do código aqui: (Manipulação de Exceções Java - Estilo)
Connection conn = MyDatabaseLayer.getConnection();
try {
... use conn ...
}
finally {
conn.close();
}
No entanto, preciso executar mais um tratamento de exceção para garantir que a instrução e o leitor e todas as outras coisas sejam fechadas? Ou está fechando a conexão o suficiente?