pessoal queria um cadastrar: pode ser pessoa qualquer coisa pra me servir de base pois estou sem nenhuma
se alguem puder me ajudar eu agradeço.
pessoal queria um cadastrar: pode ser pessoa qualquer coisa pra me servir de base pois estou sem nenhuma
se alguem puder me ajudar eu agradeço.
Você precisa especificar mais, pois pode ser Swing, Web, JME, etc,…
Embora sendo iniciante, peguei bem esses relacionamentos com banco de dados e comandos sql, tenho um exemplo bem simples de cadastrar usando 3 camadas (interface, uma classe cliente e uma classe banco). A classe banco conecta diretamente no MySQL. Se for isso que vc quer me retorne amigo. Um abração.
opa,
to querendo saber como crio uma funcao(); que execute comandos no mysql, uma funcao pra incluir dados eu ja fiz.
;D
[quote=KolT]opa,
to querendo saber como crio uma funcao(); que execute comandos no mysql, uma funcao pra incluir dados eu ja fiz.
;D[/quote]
Baixa essa apostila, e leia sobre JDBC.
Isso esclarecerá tuas dúvidas.
Boa Noite Prezado Amigo.
Vou lhe dar um simples exemplo de cadastro em 3 camadas (interface.java, cliente.java,Banco.java):
Vc vai chamar o jTextField de jTextField1 e o jButton de JButton1.
//Agora esqueça por alguns momentos da classe interface.java e vamos para a classe que realmente interessa(classe cliente.java), ela vai guardar todas as ações (métodos ou função como quiser chamar) que o cliente precisa executar. Abaixo está a resposta da sua pergunta.
CAMADA DA CLASSE CLIENTE
//Não esqueça de importar o java.sql vai precisar para passar o comando sql
import java.sql.*;
public class Cliente {
private String Nome_Cli; //encapsulamento (segurança)
//metodo contrutor da classe Cliente
public Cliente(String Nome) {
Nome_Cli=Nome;
}
//AGORA VAI PRECISAR CONSTRUIR O METODO ACESSOR
public String getNomeCliente(){
return Nome_Cli;
}
//AGORA O METODO MODIFICADOR
public void setNomeCliente(String NC){
Nome_Cli=NC;
}
//AGORA FINALMENTE AMIGO O METODO INSERIR
public void inserir(){
String Sql = ("INSERT INTO clientes (nome) VALUES('"+NomeCli+"')");
//AQUI VC CHAMA A 3ª CAMADA PARA PASSAR COMO PARAMETRO O COMANDO SQL
Banco obj = new Banco();
obj.Abre();//Método da classe banco que abre a conexão com o banco
obj.Update(Sql);//Método da Classe banco que Inclui, Exclui, Altera
obj.Fecha();//Método que fecha a conexão com o banco
}
//AQUI VC VAI PRECISAR FAZER UMA CLASSE P/ ABRIR A CONEXÃO
public void Abre()
{
try
{
/*Conecta com o Banco de Dados/
Con = DriverManager.getConnection(Local_Driver, user, password);
statement = Con.createStatement();
}
catch (SQLException e)
{
JOptionPane.showConfirmDialog(null, "O sistema n�o pode estabelecer conex�o com o banco de dados", "Sistema de Conexão do Banco", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
}
//A FAMOSA CLASSE UPDATE QUE INSERI, ALTERA E EXCLUI
public boolean Update(String SQL)
{
try
{
//iniciar transa��o
Con.setAutoCommit(false);
statement.executeUpdate(SQL);
//finalizar transa��o
Con.setAutoCommit(true);
return true;
}
catch (SQLException e)
{
JOptionPane.showConfirmDialog(null, "Não foi possivel realizar operação, tente novamente." + e, "VALIDAÇÃO DO BANCO", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
if (Con!=null)
{
try {
Con.rollback();
JOptionPane.showConfirmDialog(null, "Informações do banco foram mantidas consistentes.", "VALIDAÇÃO DO BANCO DE DADOS", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}
catch (SQLException ex){
JOptionPane.showConfirmDialog(null, "Pode existir dados incosistententes no banco de dados", "VALIDAÇÃO DO BANCO DE DADOS", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}
}
return false;
}
}
//E A CLASSE PARA FECHAR A CONEXÃO COM O BANCO
public void Fecha()
{
try
{
//Fecha conex�o com o banco de dados
statement.close();
Con.close();
}
catch (SQLException e)
{
JOptionPane.showConfirmDialog(null, “O sitema n�o pode encerrar a conex�o com o banco de dados”, “Sistema de Conexão do Banco”, JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}
}
/***AGORA VOLTE PARA SUA INTERFACE E NO jButton1 no evento action performad COLOQUE O SEGUINTE CODIGO:
Clientes obj = new Clientes(jTextField1.getText());
Banco cadastra = new Banco();
cadastra.Abre();//ABRE O BANCO
obj.inserir();//VAI PASSAR O COMANDO SQL PARA 3ª CAMADA (BANCO)
cadastra.fecha();
E pronto amigo… seu cadastro com 3 camadas está pronto…Qualquer dúvida estou à disposiçao.
Um abraço.
Então, muito se encontra na internet programas completos feito em Delphi, em VB, em C++, mas nunca vi um programa completo em Java, nem que seja um controle de estoque mais específico, do tipo cadastro de clientes, fornecedores, produtos, etc.
Gostaria de saber se alguém tem um + - assim, pois queria ver a interface, como ela foi projetada…
Se alguém tiver e puder disponibilidar, nem que seja apenas um dos cadastros, não precisa ser o programa todo.
Valeu…
Não entendeu Prezado Colega.
Vc vai utilizar somente uma classe Banco.java para todo o seu programa o que vai mudar vai ser a Interface.java e a Classe Cliente.
Ex. Se vc quiser fazer um cadastro de Cientes e um Cadastro de Produtos vai precisar:
//PARA CADASTRAR CLIENTES:
// PARA CADASTRAR PRODUTOS:
//AMBAS AS CLASSES UTILIZARÃO APENAS UMA CLASSE BANCO PARA FAZER A CONEXÃO COM O MESMO SENÃO NÃO ESTARIAMOS TRABALHANDO COM ORIENTAÇÃO A OBJETOS.
Espero que tenha entendido caro amigo e me coloco à disposição para sanar quaisquer dúvidas. Abraço.
Então se você puder tirar minha dúvida é o seguinte:
Eu abro a conexão:
Qual é o mais certo??
Valeu…
//Para uma programação orientada o objetos o correto é vc chamar (instanciar) a classe banco dentro da classe clientes toda vez que for utilizar um método da classe banco (Orientação a Objetos).
//NA CLASSE CLIENTES:
//instancio o objeto;
Clientes obj = new Clientes(jTextField1.getText());
//crio o objeto cadastra e instancio a classe banco
Banco cadastra = new Banco();
//chamo o método Abre que vai abrir o banco da classe banco
cadastra.Abre();//ABRE O BANCO
//chamo o metodo inserir da classe cliente
obj.inserir();
//Chamo o metodo fecha da classe banco (vai fechar o banco após a operação obj.inserir terminar)
cadastra.fecha();
Entendeu?! Esta é a melhor forma de trabalhar com as classes, é a verdadeira orientação a objetos…
Olá ziplove,
Estou fazendo tmb um cadastro dessa forma obrigado seu post me ajudara mas to com uma dúvida meio besta… é o seguinte quando vc fala ali classe grafica (JFrame) eu não sei como posso fazer pra mudar entre uma e outra.?? por exemplo imagine que em um momento quero sair da TelaClientes para Clientes eu devo dar dispose() em uma?? é assim que eu faço mas acho estranho… porque se o cara arrastou a janela pra um lado ou outro quando vir a nova janela pisca e a nova janela(JFrame) aparece em outra posição??? é assim mesmo normalmente???
Grato
Leandro Maniezo
[quote=ziplove]Não entendeu Prezado Colega.
Vc vai utilizar somente uma classe Banco.java para todo o seu programa o que vai mudar vai ser a Interface.java e a Classe Cliente.
Ex. Se vc quiser fazer um cadastro de Cientes e um Cadastro de Produtos vai precisar:
//PARA CADASTRAR CLIENTES:
// PARA CADASTRAR PRODUTOS:
//AMBAS AS CLASSES UTILIZARÃO APENAS UMA CLASSE BANCO PARA FAZER A CONEXÃO COM O MESMO SENÃO NÃO ESTARIAMOS TRABALHANDO COM ORIENTAÇÃO A OBJETOS.
Espero que tenha entendido caro amigo e me coloco à disposição para sanar quaisquer dúvidas. Abraço.[/quote]
Olá maniezo!!!
Gostaria que explicasse melhor sua dúvida, pois não entendi muito bem. Para sair de uma tela eu uso no evento ActionPerfomed de um JButton o codigo dispose(). Para chamar outra janela se é isso que vc quer fazer eu uso um JMenu na minha interface gráfica. Não sei se é bem isso que vc gostaria de fazer???
Oi ziplove,
Obrigado pelo retorno, então é isso mesmo a minha duvida… por exemplo eu faço um JFrame com os botoes la texts e tal ai tem um outro jframe com botoes, txts e tal ai quero como vc disse ao apertar o botão ir para o outro JFrame… até ai eu consegui fiz os eventos e tal numa boa mas o que acho estranho é que quando to usando eu arrasto a janela(Jframe) de posição ai aperto o botão pra mudar de tela ele desabilita uma e abre outra mas com isso a posição na tela muda e da aquela piscada e é isso que eu não queria! queria fazer um jeito que so alterava o miolo! tipo na web um site com iframe no meio e a cada clique so muda aquele miolo… entende…
Valew!
[quote=ziplove]Olá maniezo!!!
Gostaria que explicasse melhor sua dúvida, pois não entendi muito bem. Para sair de uma tela eu uso no evento ActionPerfomed de um JButton o codigo dispose(). Para chamar outra janela se é isso que vc quer fazer eu uso um JMenu na minha interface gráfica. Não sei se é bem isso que vc gostaria de fazer???[/quote]
Entendi o que vc quer Maniezo… quer mudar somente o miolo de sua interface gráfica e deixar o resto como esta (tipo um iframe)…
Vou ser sincero… não sei fazer isto ainda em java… vc quer fazer isto para web ou para uma aplicação swing (pc)??? Caso precisar de uma mão gostaria de trabalhar nisto com vc… Pois tb me gerou uma dúvida…
É isso mesmo! o sistema swing desktop! Ja abri um post mas é dificil de explicar o problema…
Valew pela ajuda! Vou pesquisar mais um pouco se conseguir te mando uma mp pra vc assim poder tmb ajudar! é um sistema de gerenciamento de produtos e cliente pra uma pequena empresa… ja fiz a parte de cadastro mas ta ficando uma salada so por isso to procurando uma forma mais correta!
Valew!
Ahhh…Caso queira trabalhar nisso junto… Te adicionei no meu MSN… Abraço
Veja se eu entendi coretamente então quer dizer que se eu for implementar um sistema inteiro cada tela tera uma clase de banco de dados sendo que elas vão ser sempre iguais então eu não posso fazer somente uma e reutiliza-la? e por exemplo uma clase venda q precisa se comunidar co mais de um banco nela vai conter todos os set’s e get’s?
Diego2005
depende do fluxo com q vc vai usar o banco mais na maioria das vezes q 1° opção é a melhor