Pessoal aqui pelo GUJ passam várias pessoas com problemas de conexão com o banco de dados, métodos de criar e retornar conexão, enfim.
Para ajudar essas pessoas segue o código abaixo, uma classe de conexão, com ela simplificará a conexão com uma base de dados:
import java.sql.*;
public class Acesso {
private Connection con;
public Acesso()
{
try {
Class.forName( "org.gjt.mm.mysql.Driver" );
con = DriverManager.getConnection( "jdbc:mysql://localhost/bd", "user", "password" );
} catch ( Exception e ) {
e.printStackTrace();
}
}
public int executar( String sql )
{
try {
PreparedStatement ps = con.prepareStatement( sql );
return ps.executeUpdate();
} catch ( Exception e ) {
e.printStackTrace();
return 0;
}
}
public int executar( String sql, String param[] )
{
try {
PreparedStatement ps = con.prepareStatement( sql );
for ( int i = 0; i < param.length; i++ ) {
ps.setString( i + 1, param[i] );
}
return ps.executeUpdate();
} catch ( Exception e ) {
e.printStackTrace();
return 0;
}
}
public ResultSet retornaConsulta( String sql )
{
try {
PreparedStatement ps = con.prepareStatement( sql );
return ps.executeQuery();
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
}
public ResultSet retornaConsulta( String sql, String param[] )
{
try {
PreparedStatement ps = con.prepareStatement( sql );
for ( int i = 0; i < param.length; i++ ) {
ps.setString( i + 1, param[i] );
}
return ps.executeQuery();
} catch ( Exception e ) {
e.printStackTrace();
return null;
}
}
}
Para acessar o banco de dados de outra classe:
// pesquisa
String sql = "select * from tabela where campo1 = ? and campo2 = ?";
String param[] = { "valor1", "valor2" };
Acesso acesso = new Acesso();
ResultSet rs = acesso.retornaConsulta( sql, param );
if ( rs.next() ) {
...
}
// execução
String sql = "insert into tabela values ( ?, ?, ? )"
String param[] = { "valor1", "valor2", "valor3" };
Acesso acesso = new Acesso();
acesso.executar( sql, param );
Acho que isso pode ajudar bastante o pessoal, também ajuda a não repetir código várias vezes.
Qualquer dúvida ou sugestão é só postar !!!

