Conexão com Derby pra setar lista com filtro

0 respostas
moisesGobila

Olá!
Eu Estou com um problema para criar 2 classes, uma de conexão e outra que será um Jform com uma tabela e campo de pesquisa (filtrando os resultados no banco de dados). eu consegui fazer algo parecido usando MySQL, preciso que o banco seja embarcado na aplicação, e não sei fazer isso em MySQL, nem se existe como, então comecei a fazer em derby.
Já fui em tudo quanto é site e não consigo achar uma forma correta de conectar as duas classe,

clase que vai ser a de pesquisa
/*
package associacao;

import static associacao.conexao.conect;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Busca extends javax.swing.JFrame {
    
    private JTable tabela;
    private DefaultTableModel modelo = new DefaultTableModel();
    private BancoDao con;

    public Busca(BancoDao conect) {
        initComponents();
        con = conect;
        criarTabela();
        jScrollPane1.setViewportView(tabela);
    }
    
    private void criarTabela() {
        tabela = new JTable(modelo);
        modelo.addColumn("id");// adicionando colunas na tabela
        modelo.addColumn("nome");
        modelo.addColumn("classif");
        modelo.addColumn("categoria");
        modelo.addColumn("horario");
        modelo.addColumn("sinopse");
        modelo.addColumn("cinema");
        

        tabela.getColumnModel().getColumn(0).setPreferredWidth(20);
        tabela.getColumnModel().getColumn(1).setPreferredWidth(120);
        tabela.getColumnModel().getColumn(2).setPreferredWidth(120);
        tabela.getColumnModel().getColumn(3).setPreferredWidth(120);
        tabela.getColumnModel().getColumn(4).setPreferredWidth(120);
        tabela.getColumnModel().getColumn(5).setPreferredWidth(120);
        tabela.getColumnModel().getColumn(6).setPreferredWidth(120);

        Resultado("SELECT * FROM pessoa");

    }
    private void Resultado(String sql) {
        modelo.setNumRows(0);
        try {
            con.mostraTabelaNomes();
        } catch (SQLException ex) {
            Logger.getLogger(Busca.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    @SuppressWarnings("unchecked")
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        TxtBusca = new javax.swing.JTextField();
        btnBuscar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        TxtBusca.setText("jTextField1");

        btnBuscar.setText("jButton1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1)
                    .addComponent(TxtBusca))
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(152, 152, 152)
                .addComponent(btnBuscar)
                .addContainerGap(175, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addComponent(TxtBusca, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(btnBuscar)
                .addGap(10, 10, 10)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }
    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Busca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Busca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Busca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Busca.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Busca().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTextField TxtBusca;
    private javax.swing.JButton btnBuscar;
    private javax.swing.JScrollPane jScrollPane1;
    // End of variables declaration                   
}

classe de conexão que eu achei pesquisando adaptei pro meu projeto tirando

package associacao;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class BancoDao {
	private String nomeBD;
	private String driverBD;
	private String stringDeConexao;
	private Connection conexaoBD;
	private Statement executor;
	
	public BancoDao(){
		try{
			iniciar();
			mostraTabelaNomes();
			finalizar();
		}catch(Exception excep){
			excep.printStackTrace();
		}
	}
	
	private void iniciar() throws SQLException{
		nomeBD = "Associacao";
		driverBD = "org.apache.derby.jdbc.EmbeddedDriver";
		stringDeConexao = "jdbc:derby:" + nomeBD + ";create=true;root";
			conectaBDTeste();
			executor = conexaoBD.createStatement();
	}
	
	private void conectaBDTeste() throws SQLException {
		conexaoBD = DriverManager.getConnection(stringDeConexao);
		System.out.println("Conexão estabelecida com sucesso na base de dados '" + nomeBD+"'!");
	}

	private String lerNomes() throws IOException{
		BufferedReader ler = new BufferedReader( new InputStreamReader(System.in));
        String nome = "";
        try {
           while ( nome.length() == 0 ) {
              System.out.println("Digite um nome a ser adicionado na base de dados ou 'exit' para sair. ");
              nome = ler.readLine();
           }
        } catch (IOException e) {
        	throw new IOException("Não foi possivel ler o valor digitado." + e.getMessage(), e);
        }
        return nome;
	}
	
	public void mostraTabelaNomes() throws SQLException{
		ResultSet nomesNaTabela = executor.executeQuery("select * from PESSOA");
		System.out.println("\n");
        nomesNaTabela.close();
	}
	
	private void finalizar() throws SQLException{
			desconectaDB();
			encerraDB();
	}
	
	private void desconectaDB() throws SQLException{
		conexaoBD.close();
	}
	
	private void encerraDB() throws SQLException{
		if (driverBD.equals("org.apache.derby.jdbc.EmbeddedDriver")) {
           try {
              DriverManager.getConnection("jdbc:derby:;shutdown=true");
           } catch (SQLException se)  {	
              if ( se.getSQLState().equals("XJ015") ) {		
            	  System.out.println("Base de dados foi encerrada com sucesso!");	
              }else{
            	  throw new SQLException("Erro ao encerrar a base de dados! "+se.getMessage(),se.getSQLState(),se);
              }
           }
        }
	}
	
	public static void main  (String[] args) {
		new BancoDao();
	}
}

Se tiverem como ajudar mandando artigo/tutoriais/exemplos de como fazer isso funcionar com o derby ou de como embargar o MySQL agradeço muito

Criado 17 de abril de 2015
Respostas 0
Participantes 1