public class Conexao {
private static Connection minhaConexao = null;
//Estabelece a conexao
public static Connection getConnection()
{
try{
String user = “root”;
String password = “”;
Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost/biblioteca”;
minhaConexao = DriverManager.getConnection(url, user, password);
JOptionPane.showMessageDialog(null, "Conexao realizada com sucesso","Conexão ao banco de dados",JOptionPane.PLAIN_MESSAGE);
}
catch(ClassNotFoundException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "ClassNotFoundException","Conexão ao banco de dados",JOptionPane.PLAIN_MESSAGE);
}
catch(SQLException e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "SQLException","Conexão ao banco de dados",JOptionPane.PLAIN_MESSAGE);
}
return minhaConexao;
}
}
[/code]
Ele conecta ao banco …mais naum consrgui achar nada relacionado a como chamar os dado s do meu banco para os jTextFields…
alguem poderia me dar uma ajuda…
Olá…
heheheh
Pois bem é como lhe disse é uma grande curva de aprendizado…tanto JPA (java Persistence API) como o Hibenate… porem são ferramentas incriveis…
as duas dispensam o uso de SQL ( as vezes é necessario criar criterias pra obter um resultado mais esperado)
e não dependem de Banco de dados…ou seja…ela traduzem o q voce quer pra cada banco de dados…mediante a sua configuração.
[quote=paulo.ubuntu]Olá…
heheheh
Pois bem é como lhe disse é uma grande curva de aprendizado…tanto JPA (java Persistence API) como o Hibenate… porem são ferramentas incriveis…
as duas dispensam o uso de SQL ( as vezes é necessario criar criterias pra obter um resultado mais esperado)
e não dependem de Banco de dados…ou seja…ela traduzem o q voce quer pra cada banco de dados…mediante a sua configuração.
[quote=Wesley Marra]Cara, basta usar o PreparedStatement ou Statement para a manipulação do banco de dados:
ou seja:
[code]public class Conexao {
private static Connection minhaConexao = null;
//Estabelece a conexao
public static Connection getConnection() {
try{
String user = “root”;
String password = “”;
Class.forName(“com.mysql.jdbc.Driver”);
String url = “jdbc:mysql://localhost:3306/biblioteca”;
minhaConexao = DriverManager.getConnection(url, user, password);
PreparedStatement ps = minhaConexao.prepareStatement("SELECT suaColuna FROM suaTabela WHERE suaColuna = ? ");
ps.setString(1, SeuTextField.getText()); //Caso esteje manipulando uma coluna da tabela
ResultSet rs = ps.executeQuery();
if (rs.next()){
seuTextField.setText(rs.setString("suaColuna"));
}
.
.
.
}
}
}[/code]
Espero ter ajudado
T+
[/quote]
Ajudou tbm amigo…Mto Obrigado…
tipo…para ficar melhor eu posso criar uma classe apenas para a conexão ao bancoi de dados neh…
e depois manipular os dados com
esses eskema que vc citou neh
# PreparedStatement ps = minhaConexao.prepareStatement("SELECT suaColuna FROM suaTabela WHERE suaColuna = ? ");
#
# ps.setString(1, SeuTextField.getText()); //Caso esteje manipulando uma coluna da tabela
#
# ResultSet rs = ps.executeQuery();
#
# if (rs.next()){
# seuTextField.setText(rs.setString("suaColuna"));
# }
PreparedStatement ps = minhaConexao.prepareStatement("SELECT Nome_Associado FROM associados WHERE Nome_Associado = ? ");
sendo que o " ? " será o que o usuário irá digitar no JTextField que fará a comparação ao banco de dados.
E no if ficaria assim:
[code]
if (rs.next()){
jTFNomeAssociado.setText(rs.setString(“Nome_Associado”));
/**
O jTFNomeAssociado teria que ser um JTextField de destino e não o mesmo JTextField de comparação com o banco, ou seja, terá que ter 2 JTextField: 1º para o usuário digitar o conteúdo que será comparado ao banco de dados e o 2º para receber os dados do banco*/
}[/code]
Caso dê errado post o erro pra que possa tentar identifica-lo.
[quote=Wesley Marra]No preparedStatement fica desse jeito mesmo:
…
Caso dê errado post o erro pra que possa tentar identifica-lo.
…
[/quote]
Então …montei uma classe aki e deu certo…
Da uma Olhadinha
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class TabelaCompleta extends JFrame
{
Connection conexao;
JTable tab;
public static void main(String args[])
{
JFrame Janela = new TabelaCompleta();
Janela.show();
WindowListener x = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
Janela.addWindowListener(x);
}
public TabelaCompleta()
{
setTitle( "Tabela de Associados" );
setSize(600,300);
String url = "jdbc:mysql://localhost/biblioteca";
try
{
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection(url, "root", "" );
}
catch (ClassNotFoundException cne)
{
System.out.println("Erro ao carregar o driver JDBC/ODBC");
}
catch (SQLException sqlne )
{
System.out.println("Problemas na Conexão");
}
buscaTabela();
}
private void buscaTabela()
{
Statement st;
ResultSet res;
try
{
Vector cabecalho = new Vector();
Vector linhas = new Vector();
st = conexao.createStatement();
res = st.executeQuery("SELECT * FROM associados where Nome_associado='Rodrigo'");
res.next();
// busca os cabeçalhos
ResultSetMetaData rsmd = res.getMetaData();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
cabecalho.addElement( rsmd.getColumnName( i ) );
// busca dados das linhas
do
{
linhas.addElement( proximaLinha( res, rsmd ) );
}
while ( res.next() );
// Mostra a tabela com cabeçalhos e registros
tab = new JTable( linhas, cabecalho );
JScrollPane scroller = new JScrollPane( tab );
getContentPane().add(scroller, BorderLayout.CENTER);
validate();
st.close();
}
catch (SQLException sqlex)
{ }
}
private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd )
{
Vector LinhaAtual = new Vector();
try
{
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
switch( rsmd.getColumnType(i))
{
case Types.VARCHAR:
LinhaAtual.addElement(rs.getString(i));break;
case Types.TIMESTAMP:
LinhaAtual.addElement(rs.getDate(i));break;
}
}
catch(SQLException e) {}
return LinhaAtual;
}
}
Obs: Usei alguns esqueiminhas do do While no livro do Sergio Furgeri
Mais nesta classe aki que eu tentei xma o banco e naum consegui deu um erro no SQLException
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class NovoJFrame extends JFrame {
JLabel jLabel1;
static JTextField jTFNomeAssociado;
ResultSet rs;
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NovoJFrame().setVisible(true);
}
});
}
//------------------CONTRUTOR----------------------
public NovoJFrame() {
jTFNomeAssociado = new JTextField();
jLabel1 = new JLabel();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Nome Associado: ");
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTFNomeAssociado, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jTFNomeAssociado, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
//---------------------COMEÇA A CONEXÂO--------------------
try
{
String user = "root";
String password = "";
String url = "jdbc:mysql://localhost/biblioteca";
Class.forName("com.mysql.jdbc.Driver");
Connection MinhaConexao = DriverManager.getConnection(url);
Statement MeuState = MinhaConexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = MeuState.executeQuery("SELECT * FROM associados");
rs.first();
atualizaCampos();
}
catch(ClassNotFoundException ex)
{
System.out.println("Driver JDBC-ODBC não encontrado!");
}
catch(SQLException ex)
{
System.out.println("Problemas na conexao com a fonte de dados");
}
}
//-----------------------FIM DA CONEXÂO--------------------
private void atualizaCampos() {
{
try
{
jTFNomeAssociado.setText(rs.getString("Ficodigo"));
}
catch(SQLException ex)
{ }
}
}
}
Ja abusando um pouco…
tipo na primeira classe se por acaso eu fosse usar ela (vamos dizer meio q “profissionalmente”), eu teria que dividir em mais classes e criar as orienntações neh…como ficaria +/-…pq tentei cria uma classe so pra conexão e depois eu m ebaralhava td na hr da manipulação
Desculpa a enxeção ae de vcs…e Mto obrigado desde ja…