Boa tarde pessoal, estou tentando otimizar meu sistema, que trabalha com banco de dados Firebird em uma rede interna. Gostaria de saber qual a melhor maneira de fazer uma conexão para que seja rápida e segura!??
estou usando da seguinte maneira:
package db;
import grafica.ConfigurarServidor;
import java.sql.*;
import javax.swing.*;
import java.io.*;
public class ConexaoDB
{
//pega a unidade instalada
File pasta = new File(System.getProperty("user.home"));
String[] disco = pasta.toString().split(":");
String ip;
//conexao com FIREBIRD LOCAL
String driver = "org.firebirdsql.jdbc.FBDriver";
String usuario = "SYSDBA";
String senha = "masterkey"; /**/
private Connection conexao;
public Statement statement; //aki ainda estou usando Statement, mtos falam q é melhor e mais rapido usar PreparedStatement...
public ResultSet resultset;
public boolean conecta()
{
try {
// Gravando no arquivo
byte[] buffer = new byte[1000];
InputStream in;
try {
in = new FileInputStream(disco[0]+":\\GesObras\\ConfigIP.txt"); //aki pego o ip do server
in.read(buffer);
String temp = new String(buffer).trim().toString();
ip = temp;
in.close();
} catch (FileNotFoundException e) {
System.out.println(e);
}
catch (IOException e) {
System.out.println(e);
}
}
catch (Exception ee) {
System.out.print(ee);
}
boolean result = true;
try
{
Class.forName(driver);
conexao = DriverManager.getConnection("jdbc:firebirdsql:"+ip+":"+disco[0]+":\\GesObras\\db\\DB.FDB",usuario,senha); //aki conecto
}
catch(ClassNotFoundException Driver)
{
JOptionPane.showMessageDialog(null, "Driver nao localizado: "+Driver);
result = false;
}
catch(SQLException Fonte)
{
//JOptionPane.showMessageDialog(null, "Deu erro na conexao com a fonte de dados: "+Fonte);
JOptionPane.showMessageDialog(null, "erro ao tentar conectar, verifique as configurações de conexão");
result = false;
System.exit(0);
}
return result;
}
public void desconecta()
{
boolean result = true;
try
{
conexao.close();
//JOptionPane.showConfirmDialog(null, "banco fechado");
}
catch(SQLException fecha)
{
JOptionPane.showMessageDialog(null, "Nao foi possivel "+
"fechar o banco de dados: "+fecha);
result = false;
}
}
public void executeSQL(String sql)
{
try
{
statement = conexao.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery(sql);
//JOptionPane.showMessageDialog(null, "deu certo a pesquisa");
}
catch(SQLException sqlex)
{
JOptionPane.showMessageDialog(null, "nao foi possivel " +
"executar o comando sql,"+sqlex+", o sql passado foi "+sql);
}
}
}
creio que nao seja a melhor e mais rápida maneira de conectar....
alguém pode me dar uma ajuda??
valeu