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
[code]/*
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
}
[/code]
classe de conexão que eu achei pesquisando adaptei pro meu projeto tirando
[code]
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();
}
}[/code]
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