Este artigo mostra como criar classes para comunicação com o banco de dados MySQL. Criaremos duas classes, a primeira fará a conexão com o banco de dados e a segunda fará o papel de uma query que permitirá a manipulação de dados. Estas classes poderão ser reutilizadas em outras aplicações Java.
O método ** public MysqlQuery(Connection Db)** é o construtor da classe, recebe um parâmetro Db que representa o banco de dados e cria um Statement.
O método **public void open(String sql)** recebe um parâmetro sql (sentença sql) do tipo String e tem o objetivo de fazer uma seleção no banco. Observação, o método open só serve para rodar sentenças do tipo (SELECT).
O método **public void execute(String sql)** recebe um parâmetro sql (sentença sql) do tipo String e tem objetivo executar sentenças que não sejam do tipo (SELECT). Exemplo: UPDATE, CREATE TABLE, DROP, ETC.
O método **public String fieldbyname(String field)** retorna o valor em String de um campo de uma tabela selecionada. Ele recebe como parâmetro o nome do campo e retorna seu valor.
O método **public int recordcount()** não recebe parâmetros, mas retorna a quantidade de registros selecionados pela query.
O método **public boolean next()** avança para o próximo registro. Ele retorna true se o comando for executado sem problemas, caso contrário retorna false.
O método **public boolean prev()** vai para o registro anterior e retorna true se conseguir executar sem problemas ou false caso ocorra algum erro.
O método **public boolean first()** vai para o primeiro registro query. Retorna true de conseguir executar o comando e false caso ocorra algum erro.
O método **public boolean last()** avança para o último registro. Retorna true caso não ocorra erro e false caso contrário.
Na próxima etapa construiremos um programa que vai utilizar estas duas classes demonstradas anteriormente.
[1] Comentário enviado por in54no em 11/10/2006 - 14:59h
Ola, super-root muito bom o artigo, vai me ajudar em umas coisas...
Será que voce pode me ajudar em mais uma coisa?
No caso eu queria usar com o PostgreSQL, mas antes eu tinha feio uns testes e não consegui, tem um lugar certo para colocar o driver do postgre etc...???
Valew té mais, fique com Deus!
[2] Comentário enviado por edivan em 11/10/2006 - 18:26h
No inicio até levei um susto com o codigo, mas ai na conclusão entendi o objetivo do artigo. É uma excelente atitude mostrar como as coisas são feitas por de baixo dos panos.
[4] Comentário enviado por raypenna em 15/10/2006 - 01:49h
Excelente seu artigo, estava precisando disso aqui, é só mudar a conexão pra outro banco, como firebird e oracle. Espero que escreva um outro artigo, sobre como colocar esses dados num JTable e tratar os eventos como num dbgrid do delphi. Mas aí eu to querendo demais. rsrsrs
Parabens.
[6] Comentário enviado por brejao em 15/02/2007 - 14:11h
Ahe, muito bom seu artigo, está de parabéns, me ajudou bastante, que estava precisando de ajuda na utilização de classes Java.
Um artigo bem diferente de alguns que se vê por aqui.... do tipo
"lero-lero".
[9] Comentário enviado por reunix em 02/04/2008 - 16:47h
Olá Allan, meu nome é Renato, seu Post é 100000..., porém estou com uma dificuldade.
estou utilizando o o pgAdminIII para admin meu banco PostGre, pois bem... no proprio pgAdmin para eu poder fazer referencia a uma tabela ou campo eu preciso utilizar aspas duplas " "
tipo select "Cli_Nome","Cli_Tel" from "Clientes". acompanhando e adaptando seu post consegui usar 90% dele, mas estou com dificuldade no metodo (FieldByName) sempre me retora que o campo expecificado nao existe, a tabela abre numa boa, consigui dá um First() um Last() tudo funciona, so no FieldByname() q ta o problema, ja tentei de varias formas: Fieldbyname("Cli_Nome") / Fieldbyname("\"Cli_Nome\"")
se poder me ajudar tbem tem esses topicos relacionados:
[11] Comentário enviado por removido em 23/12/2008 - 15:02h
Parabéns pelo artigo Allan.
Eu estava justamente olhando por um modelo de classe que fosse organizado e que não exigisse a criação de estruturas de dados externas à classe para manipular os resultados de uma consulta por exemplo.
[12] Comentário enviado por paulopugin em 25/05/2009 - 11:27h
fiz alguma coisa errada, o que foi??
desde já, obrigado!!!
----------
1. ERROR in teste.java (at line 8)
MysqlDB banco = new MysqlDB("jdbc:mysql://localhost/ats?user=root&password=325732");
^^^^^^^
MysqlDB cannot be resolved to a type
----------
2. ERROR in teste.java (at line 8)
MysqlDB banco = new MysqlDB("jdbc:mysql://localhost/ats?user=root&password=325732");
^^^^^^^
MysqlDB cannot be resolved to a type
----------
3. ERROR in teste.java (at line 10)
MysqlQuery query1 = new MysqlQuery(banco.conn);
^^^^^^^^^^
MysqlQuery cannot be resolved to a type
----------
4. ERROR in teste.java (at line 10)
MysqlQuery query1 = new MysqlQuery(banco.conn);
^^^^^^^^^^
MysqlQuery cannot be resolved to a type
----------
4 problems (4 errors)