Bom vamos criar um programa simples de cadastro em Java utilizando um banco de dados MySql, antes de começarmos a programar nosso software precisamos fazer o download do conector MYSQL pois ele vai fazer toda a conexão com o banco de dados.
Abaixo está o link para você fazer o download pelo próprio site do MYSQL
http://www.mysql.com/downloads/connector/j/
vem um arquivo zipado com o jar que vamos usar dentro, se você quiser baixar o jar, coloquei ele para download, clique no link abaixo e baixe apenas o jar.
elzobrito.com/arquivos/blog/postjava/mysql-connector-java-5.0.8-bin.jar
Depois de fazer o download você precisa extrair o arquivo
Caso tenha baixado o zip diretamente do site do MYSQL, depois de extrair o arquivo cole na pasta:
C:\Program Files\Java\jdk1.6.0_16\jre\lib\ext
Bem agora vamos criar nosso banco de dados, vamos criar uma tabela simples com:
Código, nome, data de nascimento, telefone, email.
Então o código SQL fica assim:
CREATE TABLE `elzobrito1`.`cadastro` ( `cod` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `nome` VARCHAR( 255 ) NOT NULL , `dt_nasc` VARCHAR( 255 ) NOT NULL , `telefone` VARCHAR( 255 ) NOT NULL , `email` VARCHAR( 255 ) NOT NULL ) ENGINE = MYISAM
Pronto agora podemos nos preocupar com as classes Java : )
Vamos criar uma classe Amigo, com os mesmos campos que colocamos no banco de dados.
cod
public class Amigo { private int cod; private String nome; private String dt_nasc; private String telefone; private String email; public int getCod() { return cod; } public void setCod(int cod) { this.cod = cod; } public String getDt_nasc() { return dt_nasc; } public void setDt_nasc(String dt_nasc) { this.dt_nasc = dt_nasc; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getTelefone() { return telefone; } public void setTelefone(String telefone) { this.telefone = telefone; } }
Pronto a classe Amigo está criada, precisamos criar uma classe para conversar com nosso banco de dados. A classe que vamos criar agora faz busca e inserção no banco de dados.
import java.util.*; import java.sql.*; import java.util.ArrayList; public class ConectaBanco { private String url; private String login; private String senha; public ConectaBanco(String url, String login, String senha) { setUrl(url); setLogin(login); setSenha(senha); } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public void insere(String s, String msg) { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //System.out.println("\n Salvando URL: ...\n"); try { Connection conn = DriverManager.getConnection(getUrl(),
getLogin(), getSenha()); try { String sql = s; Statement stm = conn.createStatement(); try { stm.executeUpdate(sql); System.out.println(msg); } catch (Exception ex) { System.out.println("\nErro no resultset!\n" + ex); } } catch (Exception ex) { System.out.println("\nErro no statement!"); } } catch (Exception ex) { System.out.println("\nErro no connection!"); } } catch (Exception ex) { System.out.println("\nDriver nao pode ser carregado!"); } } public ArrayList busca(String s) { ArrayList amigo = new ArrayList(); Amigo a = new Amigo(); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //System.out.println("\n Salvando URL: ...\n"); try { Connection conn = DriverManager.getConnection(getUrl(),
getLogin(), getSenha()); try { String sql = s; Statement stm = conn.createStatement(); try { ResultSet rs = stm.executeQuery(sql); while (rs.next()) { a.setCod(rs.getInt(1)); a.setNome(rs.getString(2)); a.setDt_nasc(rs.getString(3)); a.setTelefone(rs.getString(4)); a.setEmail(rs.getString(5)); amigo.add(a); } //System.out.println(rs.getInt(1)); } catch (Exception ex) { System.out.println(ex); } } catch (Exception ex) { System.out.println("\nErro no statement!"); } } catch (Exception ex) { System.out.println("\nErro no connection! " + ex); } } catch (Exception ex) { System.out.println("\nDriver nao pode ser carregado!"); } return amigo; } }
Agora vamos fazer o MAIN…
No MAIN vamos fazer um coisa bem simples apenas cadastrar e buscar um amigo no banco de dados.
import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO code application loSgic here Scanner ler = new Scanner(System.in); ConectaBanco cb = new ConectaBanco("jdbc:mysql://URL",
"LOGIN", "SENHA"); int x=-1; while (x != 0) { System.out.println("Escolha uma opcao"); System.out.println("1 - Cadastrar amigo"); System.out.println("2 - Buscar Amigo"); System.out.println("3 - Sair"); x = Integer.parseInt(ler.nextLine()); switch (x) { case 1: { Amigo amigo = new Amigo(); System.out.println("Digite um nome:"); amigo.setNome(ler.nextLine()); System.out.println("Digite a data de nascimento:"); amigo.setDt_nasc(ler.nextLine()); System.out.println("Digite o Telefone:"); amigo.setTelefone(ler.nextLine()); System.out.println("Digite o E-mail:"); amigo.setEmail(ler.nextLine()); cb.insere("INSERT INTO
nome_do_banco_de_dados.nome_da_tabela VALUES
(NULL , '" + amigo.getNome() + "', '" + amigo.getDt_nasc() +
"', '" + amigo.getTelefone() + "', '" + amigo.getEmail() + "');
", "Amigo gravado corretamente..."); break; } case 2: { ArrayList a = new ArrayList(); System.out.println("Digite o nome do seu amigo
para procura:"); String nome = ler.nextLine(); a = cb.busca("SELECT * FROM
nome_do_banco_de_dados.nome_da_tabelao WHERE nome
LIKE '%" + nome + "%';"); if (a.size()>0){ a.get(0).show(a); } else{ System.out.println("nao achamdos seu amigo :( "); } break; } case 3: { x=0; } } } } }
Pronto nosso programa já esta funcionando
heheheh
Amigo no momento da busca o netbeans esta dando como incompativel:
a.get(0).show(a);
Uso o NetBeans 6.8 com Win7 não da erro mas tb nao mostra o resultado…podes me dar um retorno?
Vlw
bom, o código SQL pode estar errado, ou a tabela pode não ter valores.
Amigo…quando eu deixo o .Show(a) e compilo mostra a seguinte mensagem
Exception in thread “main” java.lang.RuntimeException: Uncompilable source code
at Principal.main
Quando digito um nome q nao existe no banco da a msg q nao foi encontrado….porem se digito um q exite da o erro acima…
tens outro artigo mostrando sobre cadastro com pesquisa simples no java?
Parabens pelo artigo
parabéns!!
mto legal =)