Paginas

sexta-feira, 27 de agosto de 2010

Testando Performance do Banco

//Criado Por Mario Rodrigues 27/08/2010
//Nesta classe utilizo o currentTimeMillis()  para recuperar o tempo que o sistema leva para inserir 1 registro na base de dados, o currentTimeMillis() retorna em milisegundos dai divido por 1000 para obter o resultado em segundos...espero q gostem
//Uma ideia seria trocar os drives de conexao com o banco e testar varios bancos verificando a melhor opção de banco de dados para sua aplicação...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class TesteTempo {

    private Connection conn;
    long ini;
    long fim;

    public TesteTempo() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost/estudantes";
            String user = "root";
            String password = "*****";
            conn = DriverManager.getConnection(url, user, password);
            } catch (ClassNotFoundException e) {
            System.out.println("Ocorreu um erro " + e.getMessage());
        } catch (SQLException e) {
            System.out.println("Ocorreu um erro num SQL " + e.getMessage());
        }

       ini = System.currentTimeMillis(); // recupera o tempo em milisegundos
       insert();
       fim = System.currentTimeMillis();
      JOptionPane.showMessageDialog(null, "O tempo de Insert na base foi de : \n"+((end-ini)/1000)+" Segundos","Tempo",JOptionPane.INFORMATION_MESSAGE);
    }

    public void insert(){

        int cod = 10;
        String nome = "Tadeu";
        String ultimoName = "Tadando";

        try {
            PreparedStatement pstmt = conn.prepareStatement("Insert into student values (?,?,?)");
            pstmt.setInt(1, cod);
            pstmt.setString(2, nome);
            pstmt.setString(3, ultimoNome);

            pstmt.execute();
            JOptionPane.showMessageDialog(null, "Inclusão ok!!","Inclusão",JOptionPane.INFORMATION_MESSAGE);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Problema na Inclusão!!"+e.getMessage(),"Inclusão falhou",JOptionPane.ERROR_MESSAGE);
        }

    }

    public static void main(String args[]) {

        new TesteTempo();
     
       
    }
}