Ola tenho uma tela que gostaria de ligar com o banco mas nao sei com sera que tem alguem que poderia me ajudar
Tela / bd
8 Respostas
Ja foram criadas as telas eu usei JDBC agora preciso liga-las ao banco e nao sei como
Qual e o BD?
Hum…
vc tera que gerar uma string com insert into pegando os valores do seus TextFields e outros objetos da sua tela…depois vc mandar executar essa String com seu comando insert.
qualquer coisa me add no msn que te passo uma aplicação de exemplo…
abraços…
package br.com.metalcoop.teste;
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 TesteConnection {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager
.getConnection("jdbc:mysql://localhost/metalcoop?user=root&password=admin");
Statement stm = conn.createStatement();
String select = "select id, nome from teste";
ResultSet rs = stm.executeQuery(select);
while (rs.next()) {
System.out.println("Código:" + rs.getInt("id")+ " Nome:" + rs.getString("nome"));
}
stm.close();
String insert = "insert into teste (id, nome) values (?, ?)";
PreparedStatement ps = conn.prepareStatement(insert);
ps.setInt(1, 3);
ps.setString(2, "Gabriele");
ps.executeUpdate(insert);
ps.close();
rs.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Valeu
Me tira um duvida eu tenho tres classe
1ª classe a programação logica
2ª classe a tela
3ª classe a de conexao do banco
a classe 2 com a 1 ja esta ligada agora tenho que altera desta maneira para ligar a 2 e a 3
e isto
vixi começe criando suas classes de persistencia, escolha um mecanismo de persistencia.
aconselho começar com jdbc mesmo, te várias apostilas e exemplos.
vai postando ai que agente vai te ajudando.
bem so pra aprender
e so criar uma instancia dessa classe conexao na sua tela
e entao abrir um statement e executar tipo assim
mas tera que mudar um pouco porque ela nao devera ter o metodo main e sim a sua tela
muda assim o
[color=green] package br.com.metalcoop.teste;
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 TesteConnection {
private Connection conexao;
public TesteConnection (){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conexao = DriverManager
.getConnection("jdbc:mysql://localhost/metalcoop?user=root&password=admin");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public Connection getConexao(){
return conexao;
}
}
[/color]
ai entao na sua classe de tela vc faz isso
cria uma instancia privada de TesteConnection
e no construtor inicializa ela
entao no botao de gravar ou sei la onde vc coloca isso
StringBuilder sql = new StringBuilder();
PreparedStatement pstmt = null;
try {
sql.append("INSERT INTO TABELA(.....")VALUES(?,?,?)");
pstmt = testeConnection.getConexao.prepareStatement(sql.toString());
pstmt.setInt(1, valor1);
pstmt.setInt(2, valor2);
pstmt.setInt(3, valor3);
pstmt.execute();
} catch(SQLException e) {
} finally {
try{
if(pstmt!=null) pstmt.close();
} catch(SQLException e){
}
}
espero ter ajudado.
Bem na verdade o interessante seria
criar uma classe de visão, uma de negocio e uma de persistencia
sua visao tem uma instancia do seu negocio ela nao deve conhecer a persistencia
e sua classe de negocio conhece a sua classe de persistencia.
e sua persistencia nao deve conhecer a sua visao
ou seja padrao mvc.