É correto ultilzar o mesmo PreparedStatement com 2 clasusulas SQL diferentes e depois fecha-lo, ou posso ter algum problema futuro?
PreparedStatementps....ps=con.prepareStatement("INSERT INTO");ps.setString(1,"bla");ps.execute();ps=con.prepareStatement("UPDATE ... set ...");ps.setString(1,"Ble");ps.executeUpdate();//Aqui eu fecho o ps e con ...ps.close();con.close();.....
Sim, voce pode reutilizar. Lembre-se apenas que antes de criar outro statement vc precisa dar um close() nele, caso contrario voce tera um memory leak que rapidamente ira derrubar o seu sistema.
Ou seja:
PreparedStatementps....ps=con.prepareStatement("INSERT INTO");ps.setString(1,"bla");ps.execute();ps.close();// <-- FECHEps=con.prepareStatement("UPDATE ... set ...");ps.setString(1,"Ble");ps.executeUpdate();//Aqui eu fecho o ps e con ...ps.close();con.close();// <-- A conexao vc libera soh no final mesmo
Rafael
I
igor_
Ok Rafael,
Mas no meu caso, estou recuperando o ultimo registro inserido no banco de dados e estou usando o Mysql.
faço assim.
Se eu fizer como vc falou eu não consigo recuperar um ultimo registro, eu estou usando o mesmo PreparedStatement pra inserir e logo após pesquisar o ultimo valor inserido. existe uma outra maneira para mim recuperar esse ultimo registro (sem usar select MAX()) , ja que não é recomendado usar o mesmo ps sem antes fecha-lo ?
Grato.
Rafael_Steil
Uma coisa nao tem nada a ver com a outra. Voce pode fechar o statement e depois fazer a query para pegar o ultimo id gerado. Voce teria problemas apenas se fechasse a conexao.