Utilizando Swing com Banco de Dados
|
|
|
- Agustina Angelim Sabrosa
- 9 Há anos
- Visualizações:
Transcrição
1 Programando com Java Artigo Utilizando Swing com Banco de Dados Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle Certified Professional, Java SE 6 Programmer. Trabalhou profissionalmente com desenvolvimento em Delphi 7 e Java JEE. Introdução Muitos iniciantes em Java instalam, geralmente o Netbeans, e montam uma interface através dos componentes visuais da IDE. Não é apenas o Netbeans que oferece esse recurso, o Eclipse, o Intellij Idea entre outros também oferecem. Com a interface montada eles querem fazer a ligação entre a interface e o banco de dados. Bom, é ai que surge a dúvida. Como fazer? Neste tutorial irei exemplificar de maneira bem simples, mas útil, de como resolver este problema. Iremos utilizar conexão JDBC com banco de dados Mysql e a interface será feita no braço, como se costuma dizer quando não utilizamos uma IDE para esse fim. É claro que quem quiser utilizar uma IDE para construir sua interface, pode fazê-lo sem problemas, até por que o intuito desse tutorial será como enviar e receber os dados do banco de dados por uma interface gráfica e não como criar uma interface gráfica. Também tentarei explicar e exemplificar como funciona o padrão Model View Controller ou MVC como costuma ser chamado. 1. Arquivos necessários Como a conexão será por JDBC, precisaremos do driver JDBC do Mysql, e também do Mysql instalado na PC. Quem não quiser utilizar o Mysql, fique a vontade de utilizar qualquer outro gerenciador de banco de dados ou mesmo um banco de dados do tipo standalone como Derby ou o HsqlDB (veja mais sobre eles em: Para baixar o Driver JDBC do Mysql, acesse: Após baixá-lo adicione o arquivo mysql-connector-java bin no projeto. Para quem não tem o MySql instalado ainda, eu sugiro baixar o WampServer que vem com uma versão do MySql e possui uma instalação bem mais rápida e simples, acesse Quem não quiser o WampServer, pode baixar o MySql em 2. Padrão MVC O objetivo do Model View Controller (MVC) é separar os dados ou lógicas de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control). Utilizando este padrão seria possível reutilizar boa parte da aplicação para a comunicação com outras interfaces e também torna mais fácil a manutenção na aplicação.
2 Imagine a situação em que você cria uma aplicação em Swing sem a utilização do padrão MVC. Na classe que contém a interface você faz as chamadas a banco através de select, insert e demais métodos que se comunicam com o banco de dados. Ok, sua aplicação vai funcionar perfeitamente como você queria. Agora imagine que você precisa que essa aplicação seja também criada para a Web. Bom, você terá muito trabalho, isto por que está tudo misturado na classe de interface. Na mesma classe você fez as chamadas a banco de dados e as regras de negócio. Agora terá que refazer tudo isso para criar a aplicação no formato Web. Caso no primeiro projeto você tivesse usado o padrão MVC, não precisaria refazer tudo, apenas criaria uma nova interface no padrão Web e a comunicaria com o seu controller. É claro que no controller teria que mudar algumas coisas, por que o padrão Web trabalha com requisições e tudo mais, mas teria bem menos trabalho. Esse trabalho seria bem menor também no caso de você simplesmente querer atualizar a sua interface em Swing para um modelo diferente. Mudaria apenas a interface, os métodos principais da aplicação não precisariam ser modificados. Na aplicação que criaremos a seguir, o modelo MVC se aplica e pode ser visto mais ou menos assim: Model: contém as classes Contato, ContatoDao, GenericDao e ConnectionDataBase Controller: contém a classe ContatoController View: contém a classe ContatoFrame O processo funciona assim: 1. O usuário clica em um botão na interface (View). Esse botão possui um evento que faz uma chamada ao Controller 2. O Controller atende essa chamada e então se comunica com o Model 3. O Model executa, por exemplo, um acesso ao banco de dados, como uma consulta, e então retorna uma resposta ao Controller que retorna uma resposta a View É possível na View o acesso ao Model, como instanciar uma classe de entidade para ter acesso aos seus métodos, mas nunca as classes que possuem relacionamentos com o banco de dados. No exemplo deste tutorial foram passados para o Controller parâmetros tipo String, mas poderiam ser os objetos do tipo Contato (Entidade Contato). 3. Tabela contatos Vamos criar a tabela Contatos, para isso, rode o script da listagem 1. Observe que estamos utilizando auto incremento para o id da tabela, assim quem se preocupa com a criação dos id s é o gerenciador do banco de dados. Listagem 1. Contatos.sql CREATE TABLE IF NOT EXISTS `contatos` ( `ID` BIGINT( 20 ) NOT NULL AUTO_INCREMENT, `NOME` VARCHAR( 50 ) NOT NULL UNIQUE, `APELIDO` VARCHAR( 15 ) NOT NULL, `DATA_NASCIMENTO` DATE NOT NULL, PRIMARY KEY ( `ID` ) )
3 4. Classe de conexão JDBC Vamos criar a classe de conexão JDBC, conforme listagem 2. Listagem 2. Classe ConnectionDataBase package br.mb.tutorialjdbcsswingmysql.dao; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; public class ConnectionDataBase { private static final String URL_MYSQL = "jdbc:mysql://localhost/agenda"; private static final String DRIVER_CLASS = "com.mysql.jdbc.driver"; private static final String USER = "root"; private static final String PASS = ""; public static Connection getconnection() { System.out.println("Conectando ao Banco de Dados" try { Class.forName(DRIVER_CLASS return DriverManager.getConnection(URL_MYSQL, USER, PASS catch (ClassNotFoundException e) { e.printstacktrace( catch (SQLException e) { throw new RuntimeException(e return null; Para quem instalou o WampServer o usuário é root e a senha é vazia por padrão. Quem utilizou outra instalação do Mysql, deve alterar para seu usuário e sua senha. Criamos um método chamado getconnection() que retorna um objeto de conexão com o banco de dados. Neste método chamamos o método estático getconnection(...) da classe DriverMenager, pelo qual passamos as configurações para a conexão. Quando precisarmos de uma conexão como o banco de dados, vamos apenas fazer uma chamada ao método criado. Esta classe poderá ser utilizada com qualquer banco de dados, basta apenas alterar os parâmetros DRIVER_CLASS, URL_MYSQL, USER, PASS e adicionar no projeto o driver JDBC referente ao banco de dados usado. 5. Classe GenericDao Vamos criar uma classe genérica para os métodos insert, update e delete, veja na listagem 3. Listagem 3. Classe GenericDao package br.mb.tutorialjdbcswingmysql.dao; import java.sql.connection; import java.sql.preparedstatement; import java.sql.sqlexception;
4 public abstract class GenericDao { private Connection connection; protected GenericDao() { this.connection = ConnectionDataBase.getConnection( protected Connection getconnection() { return connection; protected void save(string insertsql, Object... parametros) throws SQLException { PreparedStatement pstmt = getconnection().preparestatement(insertsql for (int i = 0; i < parametros.length; i++) { pstmt.setobject(i+1, parametros[i] pstmt.execute( pstmt.close( protected void update(string updatesql, Object id, Object... parametros) throws SQLException { PreparedStatement pstmt = getconnection().preparestatement(updatesql for (int i = 0; i < parametros.length; i++) { pstmt.setobject(i+1, parametros[i] pstmt.setobject(parametros.length + 1, id pstmt.execute( pstmt.close( protected void delete(string deletesql, Object... parametros) throws SQLException { PreparedStatement pstmt = getconnection().preparestatement(deletesql for (int i = 0; i < parametros.length; i++) { pstmt.setobject(i+1, parametros[i] pstmt.execute( pstmt.close( Esta classe poderá ser usada por qualquer outra classe que faça acesso ao banco de dados. A vantagem de criar uma classe desse tipo é que não precisamos criar estes três métodos em cada classe que os utilizarmos, precisamos apenas passar os parâmetros necessários para as ações com o banco de dados. Veja que criamos um atributo connection, do tipo Connection, que recebe através do construtor da classe uma conexão com o banco de dados sempre que a classe dao for instanciada. Essa conexão recebida vem como retorno da classe ConnectionDataBase. Os métodos são protected para que apenas as classes que herdam GenericDao possoam ter acesso a eles.
5 O método save() recebe dois parametros, o primeiro é o sql que contém o insert e o segundo é uma lista de argumentos que pode passar vários parâmetros de uma só vez, algo muito parecido com um array, que conterá o valor dos campos do insert. O método update() possui um parâmetro a mais, que será o id da coluna que iremos executar o update. 6. Classe Contato Nossa classe contato terá como atributos os campos da tabela Contatos. Para isso, crie a classe como na listagem 4 e gere os métodos getters e setters. Veja que ela foi criada no pacote model, esse model não é o mesmo Model do padrão MVC, é um pacote onde se costuma colocar as classes de entidades. Listagem 4. Classe Contato package br.mb.tutorialjdbcswingmysql.model; import java.sql.date; public class Contato { private Long id; private String nome; private String apelido; private Date dtnascimento; //gere os métodos getters and setters 7. Classe ContatoDao Criamos a classe GenericDao para ser herdadas pelos demais dao s, assim, vamos agora criar a classe ContatoDao, onde terão os métodos mais específicos da classe. Veja na listagem 5. Listagem 5. Classe ContatoDao package br.mb.tutorialjdbcswingmysql.dao; import br.mb.tutorialjdbcswingmysql.model.contato; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; public class ContatoDao extends GenericDao { public void salvar(contato contato) throws SQLException { String insert = "INSERT INTO CONTATOS(nome, apelido, data_nascimento) VALUES(?,?,?)"; save(insert, contato.getnome(), contato.getapelido(), contato.getdtnascimento() public void alterar(contato contato) throws SQLException { String update = "UPDATE CONTATOS " + "SET nome =?, apelido =?, data_nascimento =? " + "WHERE id =?";
6 update(update, contato.getid(), contato.getnome(), contato.getapelido(), contato.getdtnascimento() public void excluir(long id) throws SQLException { String delete = "DELETE FROM CONTATOS WHERE id =?"; delete(delete, id public List<Contato> findcontatos() throws SQLException { List<Contato> contatos = new ArrayList<Contato>( String select = "SELECT * FROM CONTATOS"; PreparedStatement stmt = getconnection().preparestatement(select ResultSet rs = stmt.executequery( while (rs.next()) { Contato contato = new Contato( contato.setid(rs.getlong("id") contato.setnome(rs.getstring("nome") contato.setapelido(rs.getstring("apelido") contato.setdtnascimento(rs.getdate("data_nascimento") contatos.add(contato rs.close( stmt.close( return contatos; public Contato findbyname(string nome) throws SQLException { String select = "SELECT * FROM CONTATOS WHERE nome =?"; Contato contato = null; PreparedStatement stmt = getconnection().preparestatement(select stmt.setstring(1, nome ResultSet rs = stmt.executequery( while (rs.next()) { contato = new Contato( contato.setid(rs.getlong("id") contato.setnome(rs.getstring("nome") contato.setapelido(rs.getstring("apelido") contato.setdtnascimento(rs.getdate("data_nascimento") rs.close( stmt.close( return contato; Veja que utilizamos herança nesta classe, herdando os métodos criados na classe GenericDao. Nossos métodos salvar(), alterar() e excluir() possuem a criação do SQL que será executado no banco de dados e uma chamada ao método da classe GenericDao, passando para ele o SQL e os demais parâmetros. Os métodos salvar(), alterar() e excluir(), serão os métodos acessados pela classe ContatoController para manipulação com o banco de dados. Ainda criamos mais dois métodos, um que retorna através de um select
7 uma lista com todos os contatos cadastrados no banco de dados e um que realizara um select pela coluna nome da tabela contatos do banco de dados. Podem ser criadas mais consultas, mas para este tutorial vamos utilizar apenas estes dois. 8. Classe ContatoController A classe ContatoController será o relacionamento entre o banco de dados e a interface com o usuários, assim, não iremos misturar na classe da interface métodos referentes ao banco de dados e a regras de negócios. Crie a classe conforme a listagem 6. Listagem 6. Classe ContatoController package br.mb.tutorialjdbcswingmysql.controller; import br.mb.tutorialjdbcswingmysql.dao.contatodao; import br.mb.tutorialjdbcswingmysql.model.contato; import javax.swing.*; import java.sql.date; import java.sql.sqlexception; import java.text.dateformat; import java.text.parseexception; import java.text.simpledateformat; import java.util.list; public class ContatoController { private Date formatardata(string data) throws ParseException { DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy" return new Date( formatter.parse(data).gettime() public void salvar(string nome, String apelido, String dtnascimento) throws SQLException, ParseException { Contato contato = new Contato( contato.setnome(nome contato.setapelido(apelido contato.setdtnascimento(formatardata(dtnascimento) new ContatoDao().salvar(contato public void alterar(long id, String nome, String apelido, String dtnascimento) throws ParseException, SQLException { Contato contato = new Contato( contato.setid(id contato.setnome(nome contato.setapelido(apelido contato.setdtnascimento(formatardata(dtnascimento) new ContatoDao().alterar(contato public List<Contato> listacontatos() { ContatoDao dao = new ContatoDao( try { return dao.findcontatos(
8 catch (SQLException e) { JOptionPane.showMessageDialog(null, "Problemas ao localizar contato\n" + e.getlocalizedmessage() return null; public void excluir(long id) throws SQLException { new ContatoDao().excluir(id public Contato buscacontatopornome(string nome) throws SQLException { ContatoDao dao = new ContatoDao( return dao.findbyname(nome A classe ContatoController faz a comunicação entre o banco de dados e a interface, utilizamos aqui o modelo conhecido como MVC(Model View Controller), onde separamos regras de negócios e interface. Criamos aqui um método para manipular a data. Os métodos desta classe serão chamados pela interface, e farão a chamada aos métodos das classes dao s para então retornar para a interface o resultado. 9. Classe ContatoFrame Agora criaremos a nossa classe de interface com o usuário. Quem for criar a interface com auxilio de uma IDE qualquer, tente apenas utilizar as mesmas nomenclaturas dos atributos e métodos para evitar problemas. O resultado final será uma interface como a da figura 1. Figura 1 - Interface Contatos 1 Listagem 7. Classe ContatoFrame package br.mb.tutorialjdbcswingmysql.frame;
9 import br.mb.tutorialjdbcswingmysql.controller.contatocontroller; import br.mb.tutorialjdbcswingmysql.model.contato; import javax.swing.*; import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.sql.sqlexception; import java.text.parseexception; import java.text.simpledateformat; import java.util.list; public class ContatoFrame extends JFrame { private JLabel lbnome, lbapelido, lbdtnascimento; private JTextField txtnome, txtapelido, txtdtnascimento, txtlocalizar; private JButton btnsalvar, btnalterar, btnexcluir, btnclear, btnlocalizar; private JButton btnprimeiro, btnproximo, btnanterior, btnultimo; private List<Contato> contatolist = new ContatoController().listaContatos( private int registroatual = 0; public ContatoFrame() { super("contatos" Container tela = getcontentpane( setlayout(null lbnome = new JLabel("Nome" lbapelido = new JLabel("Apelido" lbdtnascimento = new JLabel("Data de Nascimento(dd/mm/aaaa)" lbnome.setbounds(10, 10, 240, 15 lbapelido.setbounds(10, 50, 240, 15 lbdtnascimento.setbounds(10, 90, 240, 15 lbnome.setforeground(color.black lbapelido.setforeground(color.black lbdtnascimento.setforeground(color.black lbnome.setfont(new Font("Courier New", Font.BOLD, 14) lbapelido.setfont(new Font("Courier New", Font.BOLD, 14) lbdtnascimento.setfont(new Font("Courier New", Font.BOLD, 14) tela.add(lbnome tela.add(lbapelido tela.add(lbdtnascimento txtnome = new JTextField( txtapelido = new JTextField( txtdtnascimento = new JTextField( txtnome.setbounds(10, 25, 265, 20 txtapelido.setbounds(10, 65, 265, 20 txtdtnascimento.setbounds(10, 105, 265, 20 tela.add(txtnome tela.add(txtapelido tela.add(txtdtnascimento btnsalvar = new JButton("Salvar"
10 btnalterar = new JButton("Alterar" btnexcluir = new JButton("Excluir" btnclear = new JButton("Limpar" btnprimeiro = new JButton(" <" btnanterior = new JButton("<<" btnproximo = new JButton(">>" btnultimo = new JButton("> " btnsalvar.setbounds(280, 25, 80, 20 btnalterar.setbounds(280, 65, 80, 20 btnexcluir.setbounds(280, 105, 80, 20 tela.add(btnsalvar tela.add(btnalterar tela.add(btnexcluir btnprimeiro.setbounds(10, 135, 50, 20 btnanterior.setbounds(60, 135, 50, 20 btnclear.setbounds(110, 135, 75, 20 btnproximo.setbounds(185, 135, 50, 20 btnultimo.setbounds(235, 135, 50, 20 tela.add(btnprimeiro tela.add(btnanterior tela.add(btnclear tela.add(btnproximo tela.add(btnultimo JLabel lblocalizar = new JLabel("Localizar por nome" lblocalizar.setbounds(10, 160, 220, 20 txtlocalizar = new JTextField( txtlocalizar.setbounds(10, 180, 220, 20 btnlocalizar = new JButton("Ir" btnlocalizar.setbounds(230, 180, 55, 20 tela.add(lblocalizar tela.add(txtlocalizar tela.add(btnlocalizar setsize(400, 250 setvisible(true setlocationrelativeto(null btnsalvar.addactionlistener( onclicksalvar( btnalterar.addactionlistener( onclickalterar(
11 btnexcluir.addactionlistener( onclickexcluir( btnclear.addactionlistener( clearfields( registroatual = 0; btnlocalizar.addactionlistener( onclicklocalizar( btnprimeiro.addactionlistener( onclickprimeiro( btnanterior.addactionlistener( onclickanterior( btnproximo.addactionlistener( onclickproximo( btnultimo.addactionlistener( onclickultimo(
12 private void onclickultimo() { registroatual = contatolist.size() - 1; getvalores(registroatual private void onclickproximo() { if (registroatual!= contatolist.size() - 1) { getvalores(++registroatual private void onclickanterior() { if (registroatual!= 0) { getvalores(--registroatual private void onclickprimeiro() { registroatual = 0; getvalores(registroatual private void getvalores(int index) { if (index <= contatolist.size() - 1) { Contato contatoatual = contatolist.get(index txtnome.settext(contatoatual.getnome() txtapelido.settext(contatoatual.getapelido() txtdtnascimento.settext(new SimpleDateFormat("dd/MM/yyyy").format(contatoAtual.getDtNascimento()) private void onclickalterar() { ContatoController cc = new ContatoController( long id = contatolist.get(registroatual).getid( try { cc.alterar(id, txtnome.gettext(), txtapelido.gettext(), txtdtnascimento.gettext() JOptionPane.showMessageDialog(this, "Contato alterado com sucesso!" clearfields( contatolist = new ContatoController().listaContatos( catch (SQLException e) { JOptionPane.showMessageDialog(this, "Nao foi possivel alterar contato!\n" + e.getlocalizedmessage() catch (ParseException e) { JOptionPane.showMessageDialog(this, "Data possui formato inválido!\n" + e.getlocalizedmessage() private void onclicksalvar() { ContatoController cc = new ContatoController( try { cc.salvar(txtnome.gettext(), txtapelido.gettext(), txtdtnascimento.gettext() JOptionPane.showMessageDialog(this, "Contato salvo com sucesso!" clearfields( contatolist = new ContatoController().listaContatos(
13 catch (SQLException e) { JOptionPane.showMessageDialog(this, "Nao foi possivel salvar contato!\n" + e.getlocalizedmessage() catch (ParseException e) { JOptionPane.showMessageDialog(this, "Data possui formato inválido!\n" + e.getlocalizedmessage() private void onclickexcluir() { ContatoController cc = new ContatoController( long id = contatolist.get(registroatual).getid( try { cc.excluir(id JOptionPane.showMessageDialog(this, "Contato excluido com sucesso!" clearfields( contatolist = new ContatoController().listaContatos( catch (SQLException e) { JOptionPane.showMessageDialog(this, "Nao foi possivel excluir o contato!\n" + e.getlocalizedmessage() private void onclicklocalizar() { ContatoController cc = new ContatoController( try { Contato c = cc.buscacontatopornome(txtlocalizar.gettext() txtnome.settext(c.getnome() txtapelido.settext(c.getapelido() txtdtnascimento.settext(new SimpleDateFormat("dd/MM/yyyy").format(c.getDtNascimento()) catch (SQLException e) { JOptionPane.showMessageDialog(this, "Ocorreu um erro, tente novamente!\n" + e.getlocalizedmessage() catch (NullPointerException e){ JOptionPane.showMessageDialog(this, "Contato não localizdo ou não existe!\n" + e.getlocalizedmessage() private void clearfields() { txtnome.settext("" txtapelido.settext("" txtdtnascimento.settext("" txtlocalizar.settext("" public static void main(string[] args) { ContatoFrame frame = new ContatoFrame( frame.setdefaultcloseoperation(jframe.exit_on_close Nesta classe temos a criação da interface com usuário e os métodos que se comunicam com o controller para enviar ou receber dos dados do banco de dados. Além dos atributos referentes aos componentes da interface, foram criados mais dois atributos, o contatolist e o registroatual. O contatolist é uma lista que irá
14 guarda a consulta do banco de dados para a visualização de todos os contatos cadastrados. O registroatual irá guaradar a posição atual do regitro na lista, que será útil para a navegação entre os registros. Os métodos onclickultimo(), onclickproximo(), onclickanterior() e onclickprimeiro() enviarão para o método getvalores() a posição atual na lista, para então os campos do formulário serem preenchidos com estes valores. Esta navegação é feita toda dentro da lista, assim poupa o trabalho de ficar abrindo e fechando a conexão com o banco de dados a todo momento, o que é considerado um alto custo para uma apliação. Os métodos onclicksalvar(), onclickexcluir() e onclickalterar(), passam por parâmetros os dados necessários para os métodos no controller interagirem com o banco de dados. O método onclicklocalizar() irá fazer uma consulta através do parâmetro nome. O parâmetro deve ser digitado no campo especifico e o clique no botão Ir faz a chamada ao método onclicklocalizar() que se comunica com o controller. O controller faz a chamada aos dao s que retorna o resultado da consuta. O método clearfields() serve apenas para limpar os campos quando estiverem preenchidos com dados. Sobre a utilização do padrão MVC, por exemplo, no método onclicksalvar() poderia ao invés de enviar 3 parâmetros do tipo String, um unico parâmetro do tipo Contato. Assim, ao invés de criar o objeto contato no controller como foi feito, criariamos dentro do método onclicksalvar(). Conclusão Este tutorial exemplificou de forma simples como utilizar SWING com Banco de Dados. Também exemplificou como utilizar o padrão MVC. Agora que você já sabe como criar os eventos com o banco de dados através da interface, experimente criar outras tabelas no banco de dados e outras interfaces para testar o que aprendeu até aqui. Lembre-se, para cada tabela criada, crie uma nova entidade, um novo dao especifico e um novo controller. Saiba mais Model View Controller MySql JDBC artigo Guj JDBC tutorial Oracle Netbeans Eclipse Intellij Idea
JDBC com Banco de Dados Standalone
Programando com Java Artigo http://mballem.wordpress.com/ JDBC com Banco de Dados Standalone Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle Certified Professional,
Exercícios de fixação: Listas
Exercícios de fixação: Listas Exercício 1 : Inlcuindo o driver ao seu projeto 1. No Eclipse, vamos criar um novo projeto chamado CursoJavaJDBC. 2. Copie o driver do MySQL para o seu projeto. a. localize
Utilizando Swing com JPA/Hibernate
Programando com Java Artigo http://mballem.wordpress.com/ Utilizando Swing com JPA/Hibernate Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle Certified Professional,
De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função
.1 JDBC A linguagem Java possui classes que permitem a com um banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Application Program Interface) que permite
Java - Conexão ao Banco de Dados usando JDBC
Java - Conexão ao Banco de Dados usando JDBC 1. Criar o modelo no DBDesigner, como mostrado a seguir. Salvar o script de criação da tabela. 2. Criar o esquema e as tabelas no MySQL (Pode usar o MySQL Query
Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão
Agenda Instalação e configuração Driver JDBC Criação da classe de conexão Processamento de comandos SQL com JDBC Gerenciamento de conexões Execução simples de consultas Tratamento de exceções Instalação
Utilizando Swing com Hibernate
Programando com Java Artigo http://mballem.wordpress.com/ Utilizando Swing com Hibernate Utilizando a SessionFactory Autor Marcio Ballem: é formado em Sistemas de Informação e possui certificação Oracle
Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP
Banco de dados POO Márcio Delamaro 1/37 Objetivo Nesta aula vamos dar uma breve introdução do que é um Banco de dados relacional Como acessar um banco de dados usando Java 2/37 O que é Bancos de dados
Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços
Web Services EclipseSDK/DB2 Construindo/Consumindo Serviços Mario C. Ponciano a.k.a: Razec http://razec.wordpress.com [email protected] 28 de Novembro 2009 2 Sumário Objetivo... 3 Requisitos... 3 Desenvolvimento...
DATA ACCESS OBJECT (DAO)
Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DATA ACCESS OBJECT (DAO) SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015
JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES
Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo
Acesso a banco de dados
Acesso a banco de dados 1. Crie uma pasta chamada AcessoBD com as seguintes subpastas: Aplicativos, Drivers, AcessoMSACCESS, AcessoMySQL e AcessoSQLSERVER Exemplo 1: MS ACCESS 1. Crie um banco de dados
Como criar um banco de dados usando o mysql
Como criar um banco de dados usando o mysql 1º Passo: Tenha instalado em seu computador o software XAMPP. Clique aqui para fazer o download. 2º Passo: O XAMPP faz a instalação normal, apenas clicando next,
Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual
Aula 09 Objetivo Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual Banco de Dados 1. Crie um novo projeto
Conexão do Banco de Dados localhost
Conexão do Banco de Dados localhost Ligar Xampp e Instalar Workbench Observe que o MySQL direciona para a porta 3306, pois estamos trabalhando no computador local. É necessário ligar o MySQL no XAMPP.
Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.
Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação
Lista de exercícios I - RESPOSTAS Servlets e banco de dados
www.posse.ueg.br Home Page: http://www.posse.ueg.br/index.php/conexao-ueg/meuperfil/userprofile/ronaldo Dado o diagrama de classe abaixo: Lista de exercícios I - RESPOSTAS Servlets e banco de dados 1.
JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.
JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado
Unidade 12: Programação de Banco de Dados com Java Prof. Daniel Caetano
Linguagem de Programação 1 Unidade 12: Programação de Banco de Dados com Java Prof. Daniel Caetano Objetivo: Construir uma aplicação Java que interaja com Banco de Dados INTRODUÇÃO Nas aulas anteriores
Listando, gravando, alterando e excluindo registro do banco de dados com JSP
SISTEMAS DE INFORMAÇÃO 3º ANO PROGRAMAÇÃO II PROF. RONALDO FERREIRA DA SILVA JavaServer Pages JavaServer Pages (JSP) é uma tecnologia que ajuda os desenvolvedores de software a criarem páginas web geradas
Código-Fonte da Prática 02
Código-Fonte da Prática 02 Sumário Classe ConexaoDB... 2 Classe PropriedadesBD... 5 Arquivo conexao.properties... 6 Programação Comercial Walderson Shimokawa 1 Classe ConexaoDB package br.edu.univag.util.sql;
Drive MySql de conexão para Eclipse
Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito
Módulo 5 - JDBC java.sql - Conexão com Banco de Dados
Aplicações de Linguagem de Programação Orientada a Objetos 2ºsem/2012 (Professor: Tiago) Módulo 5 - JDBC java.sql - Conexão com Banco de Dados Fazer o download do drive de conexão com o BD: http://jdbc.postgresql.org/download.html
Programação Orientada a Objetos II
Programação Orientada a Objetos II Prof. Walter Gima [email protected] 1 Plano de Ensino e Aprendizagem 2 Java Conexão banco de dados 3 Agenda Conexão Banco de Dados Padrão DAO (Data Access Object)
Manipulação de Banco de Dados com Java 1. Objetivos
Manipulação de Banco de Dados com Java 1. Objetivos Demonstrar os fundamentos básicos para a manipulação de banco de dados com Java; Apresentar a sintaxe de comandos SQL usados em Java. 2. Definições A
Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas O que é banco de dados? São conjuntos de registros dispostos
Universidade Católica do Salvador Bacharelado em Informática. Antonio Yuri Jailson do Amor Divino Felipe Souza. Tutorial: Trabalhando com JDBC
Universidade Católica do Salvador Bacharelado em Informática Antonio Yuri Jailson do Amor Divino Felipe Souza Tutorial: Trabalhando com JDBC Configuração e manipulação. Professor: Eduardo Jorge Salvador
Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC
Funcionamento da Aplicação Simulações do funcionamento Simulação SAC Simulação PRICE Simulação Cartão de Crédito Simulação Deposito Simulação parcela mínima Simulação Parcelamento máximo Classe: ConnectionFactory;
PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 9- Introdução ao JDBC
Aula 9- Introdução ao JDBC Conteúdo Programático desta aula Compreender o funcionamento das ferramentas de mapeamento de acesso aos bancos de dados Utilizar componentes para acesso a dados em banco de
Declaração de Construtores em Java
Programando com Java Artigo http://mballem.wordpress.com/ Declaração de Construtores em Java Para que serve e como usar um Construtor em Java Autor Marcio Ballem: é formado em Sistemas de Informação e
Padrões de Projeto e Persistência com DAO
Curso de Análise de Sistemas Análise de Sistemas II Padrões de Projeto e Persistência com DAO Prof. Giuliano Prado de Morais Giglio, M.Sc. Introdução a Padrões de Projeto Padrões de Projeto foram inicialmente
Driver Mysql para Banco de Dados. Conexão com um Banco de Dados
Driver Mysql para Banco de Dados MySQL.: Driver.: com.mysql.jdbc.driver URL.: jdbc:mysql://localhost/nomedobanco Usuário.: root senha.: ****** Conexão com um Banco de Dados Colocar o driver do banco de
JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC
JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC Java Database Connectivity Provê acesso SQL ao banco de dados Principais
Programação Orientada a Objetos JDBC Java Database Connectivity
Especialização em Engenharia de Software Programação Orientada a Objetos JDBC Java Database Connectivity Sérgio Soares [email protected] Objetivos Apresentar os conceitos básicos da especificação de Java
SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing.
15/11/2009 Olá! A partir de agora vamos conhecer a IDE NetBeans 6.7.1 efetuando um micro projeto swing. Crie um novo projeto clicando em arquivo e em novo projeto. Escolha a opção java, aplicativo java
Conexão com Banco de Dados
Conexão com Banco de Dados ORM Atualmente os novos sistemas que estão sendo desenvolvidos estão utilizando a técnica de ORM para fazer conexão e acesso a banco de dados. ORM é uma técnica de mapeamento
JDBC. Prof. Márcio Bueno ([email protected])
JDBC Prof. Márcio Bueno ([email protected]) JBDC Java Database Connectivity ou JDBC é um conjunto de classes e interfaces (API) escritas em Java que faz o envio de instruções SQL para qualquer banco
Autenticação e Autorização
Autenticação e Autorização Introdução A segurança em aplicações corporativas está relacionada a diversos aspectos, tais como: autenticação, autorização e auditoria. A autenticação identifica quem acessa
Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos
Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos 1. Para a construção de uma aplicação gráfica se faz necessário conceber a interface de aplicação, identificando-se
Integrando Java com Banco de Dados
Especialização em Engenharia de Software Programação Orientada a Objetos JDBC Java Database Connectivity Sérgio Soares [email protected] Objetivos Apresentar os conceitos básicos da especificação de Java
Estrutura do Projeto - Trabalhando com Banco de Dados
Estrutura do Projeto - Trabalhando com Banco de Dados Utilizando o Postgresql como Base de Dados - Trabalhando com banco de Dados (Abra o pgadmin III) - Clique duas vezes sobre o PostgreSQL (8.3) e digite
Vamos falar de Hibernate?
Vamos falar de Hibernate? Hibernate é um framework ORM (Object-Relationship Management) muito bacana que nos permite ter muita produtividade na manipulação de objetos a serem persistidos no banco de dados.
Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro ([email protected]) Maio/ 2015
Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro ([email protected]) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações
Programação Orientada a Objetos II
Programação Orientada a Objetos II AULA Banco de Dados (Exemplo) Prof. Rodrigo Rocha [email protected] (Modo Texto) Conectando ao Banco de Dados Entre no Diretório do Mysql mysql u root p criando
1) Responda de acordo com os conceitos de orientação a objetos (0,5).
Avalição II (Teórica) 22/06/2017 Disciplina Linguagem de Programação II Prof. Wagner, dos Santos C. de Jesus Curso Engenharia da Computação Questões Solução da Avaliação 1) Responda de acordo com os conceitos
POO Programação Orientada a Objetos
POO Programação Orientada a Objetos Mãos à Obra Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 O sistema Nossa empresa foi contratada por uma pequena gravadora de música que deseja entrar
TUTORIAL DE INTRODUÇÃO AO CEWOLF
1 TUTORIAL DE INTRODUÇÃO AO CEWOLF CRIANDO GRÁFICOS COM JSP, CEWOLF/JFREECHART E MYSQL 1. Introdução O Cewolf (http://cewolf.sourceforge.net/) é uma biblioteca que facilita a criação de gráficos dinâmicos
Como criar um banco de dados usando o mysql
Como criar um banco de dados usando o mysql 1º Passo: Tenha instalado em seu computador o software XAMPP. Clique aqui para fazer o download. 2º Passo: O XAMPP faz a instalação normal, apenas clicando next,
Curso: Desenvolvimento Java
Exercícios de Fixação 10 Aplicações com SGBD Exercícios resolvidos Para realizar estes exercícios, iremos utilizar o projeto Aula01. Crie neste projeto um pacote de nome banco. Todos os exercícios deverão
ACESSO AO BANCO DE DADOS PARTE 2 ALTERAÇÃO, EXCLUSÃO E INCLUSÃO DE REGISTROS
ACESSO AO BANCO DE DADOS PARTE 2 ALTERAÇÃO, EXCLUSÃO E INCLUSÃO DE REGISTROS Inserir dados no Banco 1) Como vamos aproveitar o mesmo projeto e este carrega sempre os dados pelo Page_Load quando abrimos
HABILITANDO A IDE DO ECLIPSE
HABILITANDO A IDE DO ECLIPSE Até agora configuramos todos os atributos dos objetos inseridos em um frame. Vamos agora habilitar a IDE do Eclipse. Siga os passos abaixo: 1. File >>New >> Java Project 2.
Java JDBC Aplicação Java com Acesso a um SGBD. Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010
Java JDBC Aplicação Java com Acesso a um SGBD Ricardo Terra rterrabh [at] gmail.com Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010 1 CV Nome: Ricardo Terra Email: rterrabh [at] gmail.com
Faça Fácil Proficy Historian e SQL Linked Server
Faça Fácil Proficy Historian e SQL Linked Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser integradas
CONEXÃO JAVA - BANCO DE DADOS
CONEXÃO JAVA - BANCO DE DADOS RAQUEL, HEITOR, TIAGO, GEWTON Instituição Federal do Rio Grande do Norte- www.cefetrn.br JDBC JAVA DATABASE CONNECTIVITY INTRODUÇÃO API JDBC possibilita ao programador de
(INFORMAÇÕES PARA LABORATÓRIOS VIRTUAIS) Nome do laboratório: Laboratório de Programação (INFORMAÇÕES PARA FERRAMENTA)
(INFORMAÇÕES PARA LABORATÓRIOS VIRTUAIS) Nome do laboratório: Laboratório de Programação (INFORMAÇÕES PARA FERRAMENTA) Ferramenta 1 -NetBeans 8.1 GUI Elaborado por: Osmar de Oliveira Braz Junior Descrição
Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia
Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia Sistemas de Informação Ling.Prog.V Prof. Roberto Couto Lima Fonte: Curso Java Prof. Fabricio Leonard Leopoldino (Universo)
Código-Fonte da Prática 04
Código-Fonte da Prática 04 Sumário Classe CategoriaDAO... 2 Classe ClienteDAO... 5 Classe FornecedorDAO... 9 Classe ProdutoDAO... 12 Classe VendedorDAO... 16 Classe PedidoDAO... 19 Programação Comercial
Faça Fácil. Proficy Historian e SQL Linked Server
Faça Fácil Proficy Historian e SQL Linked Server Informações de produção consolidadas através de indicadores e armazenadas em historiadores de processo, como o Proficy Historian, muitas vezes devem ser
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO
Persistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel Competências a serem trabalhadas nessa aula Conectar PHP com MySQL Comandos PHP para acesso ao MySQL Utilizando comandos no
O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.
Introdução ao JasperReports O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source. Para efetuar o seu download acesse
Curso de Java. Acesso a banco de dados através de JDBC. Todos os direitos reservados Klais
Curso de Java Acesso a banco de dados através de JDBC Todos os direitos reservados Klais Java e SGBD s SQL é a linguagem padrão para acesso a banco de dados e se estabeleceu como tal no mercado. SQL no
Modificadores de Acesso e Atributos de Classe
Modificadores de Acesso e Atributos de Classe 1 Controlando o acesso p Um dos problemas mais simples que temos no nosso sistema de contas é que o método saca permite sacar mesmo que o limite tenha sido
Aula 1 Acesso a Banco de Dados
Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva [email protected] Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores
Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!
(Apresentação SQL Manager Lite for InterBase and Firebird) Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios! Ferramenta de alta performance para a otimização da administração de
PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC
Aula 09a- Acessando os dados através JDBC Conteúdo Programático desta aula Compreender os comando existentes para acesso e manipulação de dados nos Bancos de dados Apresentar os dados obtidos no banco
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
Elaborando as Interfaces Aulas 31, 32 e 33
Elaborando as Interfaces Aulas 31, 32 e 33 JList e JComboBox Prof. André Aparecido da Silva Disponível em: http://www.oxnar.com.br/2017/3ati Aulas 31, 32 e 33. 1 ATIVIDADE DA SEMANA PASSADA ELABORE UMA
Projeto Final Curso de Java Básico
Projeto Final Curso de Java Básico Este projeto tem o objetivo de permitir seu contato com as funções mais comuns na maioria dos programas, que são exibição de dados e consulta à base de dados. O programa
Persistência Java para Web com MySQL
Persistência Java para Web com MySQL 1. Criar o modelo no DBDesigner 2. Criar o esquema e as tabelas no MySQL 3. Criar um projeto Java simples, com o nome Empresa,no NetBeans 4. Adicionar o driver de conexão
Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br
Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha http://www.materialdeaula.com.br JSP (Java Server Pages) - JavaServer Pages (JSP) - Tecnologia de programação serverside - Permite
DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR
SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
Java Swing: Netbeans
Java Swing: Netbeans Swing Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:awt e Swing. A AWT foi a primeira API para interfaces gráficas a surgir no Java e foi, mais tarde,
Leonardo Gresta Paulino Murta [email protected]
Leonardo Gresta Paulino Murta [email protected] O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no
Banco de Dados. Professora: Luciana Faria
Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é
Faculdades Integradas Santa Cruz. Tutorial de Java MVC WEB Criando uma tela de Login com Banco de Dados
Faculdades Integradas Santa Cruz Tutorial de Java MVC WEB Criando uma tela de Login com Banco de Dados 2009 Introdução O objetivo deste tutorial é apresentar os conceitos de estruturação de um projeto
Linguagens de Programação
JDBC - Java Database Connectivity Necessidades : ligar aplicações Java e Applets a DBMS Drivers que suportam SQL um driver JDBC/DBMS deve suportar pelo menos o ANSI SQL92 JDBC é constituído por interfaces
