Prévia do material em texto
<p>Rio de Janeiro - RJ</p><p>2023</p><p>DANIEL ESCOVINO COELHO</p><p>PROGRAMAÇÃO ORIENTADA A OBJETOS II</p><p>TRABALHO PARA O DESENVOLVIMENTO DE APLICAÇÃO COM INTERFACE</p><p>GRÁFICA E ACESSO A BANCO DE DADOS PARA O CONTROLE DE CARROS</p><p>DE UM ESTACIONAMENTO.</p><p>/** * * @daniel coelho */ public class Estacionamento { /** * @param args the command line arguments */ public</p><p>static void main(String[] args) { } } CLASSE APLICATIVO package estacionamento.app; import</p><p>estacionamento.dao.CarroDAO; import estacionamento.db.AcessoDB; import estacionamento.model.Carro;</p><p>import java.awt.Font; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList;</p><p>import javax.swing.JOptionPane; /** * * @daniel coelho */ public class App extends javax.swing.JFrame { /** *</p><p>Creates new form App */ private Carro carroSelecionado; private ResultSet rs; private boolean edicao = false;</p><p>public App() { initComponents(); } /** * This method is called from within the constructor to initialize the form. *</p><p>WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */</p><p>@SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void</p><p>initComponents() { jpPesquisa = new javax.swing.JPanel(); txtPesquisa = new javax.swing.JTextField();</p><p>btnPesquisar = new javax.swing.JButton(); txtPlaca = new javax.swing.JTextField(); jLabel1 = new</p><p>javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); txtMarca = new javax.swing.JTextField(); txtCor = new</p><p>javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); txtEntrada = new javax.swing.JTextField(); jLabel4</p><p>= new javax.swing.JLabel(); txtSaida = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel();</p><p>btnCadastrar = new javax.swing.JButton(); btnAlterar = new javax.swing.JButton(); btnExcluir = new</p><p>javax.swing.JButton(); btnListar = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane();</p><p>listaCarros = new javax.swing.JList<>();</p><p>setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); txtPesquisa.addActionListener(new</p><p>java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>txtPesquisaActionPerformed(evt); } }); btnPesquisar.setText("Buscar por placa");</p><p>btnPesquisar.addActionListener(new java.awt.event.ActionListener() { public void</p><p>actionPerformed(java.awt.event.ActionEvent evt) { btnPesquisarActionPerformed(evt); } });</p><p>jLabel1.setText("Placa"); jLabel2.setText("Marca"); jLabel3.setText("Cor"); jLabel4.setText("Entrada");</p><p>jLabel5.setText("Saída"); btnCadastrar.setText("cadastrar"); btnCadastrar.addActionListener(new</p><p>java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnCadastrarActionPerformed(evt); } }); btnAlterar.setText("Alterar"); btnAlterar.addActionListener(new</p><p>java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnAlterarActionPerformed(evt); } }); btnExcluir.setText("Excluir"); btnExcluir.addActionListener(new</p><p>java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnExcluirActionPerformed(evt); } }); btnListar.setText("Listar"); btnListar.addActionListener(new</p><p>java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {</p><p>btnListarActionPerformed(evt); } }); listaCarros.setModel(new javax.swing.AbstractListModel<String>() { String[]</p><p>strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; public int getSize() { return strings.length; } public String</p><p>getElementAt(int i) { return strings[i]; } }); jScrollPane1.setViewportView(listaCarros); javax.swing.GroupLayout</p><p>jpPesquisaLayout = new javax.swing.GroupLayout(jpPesquisa); jpPesquisa.setLayout(jpPesquisaLayout);</p><p>jpPesquisaLayout.setHorizontalGroup(</p><p>jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(jpPesquisaLayout.createSequentialGroup() .addContainerGap()</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)</p><p>.addGroup(jpPesquisaLayout.createSequentialGroup()</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)</p><p>.addComponent(txtPlaca, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE)</p><p>.addComponent(txtPesquisa)) .addComponent(jLabel1))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(btnPesquisar) .addGroup(jpPesquisaLayout.createSequentialGroup()</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(jLabel2) .addComponent(txtMarca, javax.swing.GroupLayout.PREFERRED_SIZE, 80,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(jLabel3) .addComponent(txtCor, javax.swing.GroupLayout.PREFERRED_SIZE, 80,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))))) .addGroup(jpPesquisaLayout.createSequentialGroup()</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(jLabel4) .addComponent(txtEntrada, javax.swing.GroupLayout.PREFERRED_SIZE, 80,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addComponent(jLabel5) .addComponent(txtSaida, javax.swing.GroupLayout.PREFERRED_SIZE, 80,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(jpPesquisaLayout.createSequentialGroup()</p><p>.addComponent(btnCadastrar) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addComponent(btnAlterar)</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnExcluir)</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnListar))</p><p>.addComponent(jScrollPane1)) .addContainerGap(86, Short.MAX_VALUE)) );</p><p>jpPesquisaLayout.setVerticalGroup(</p><p>jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(jpPesquisaLayout.createSequentialGroup() .addGap(23, 23, 23)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)</p><p>.addComponent(txtPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addComponent(btnPesquisar)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)</p><p>.addGroup(jpPesquisaLayout.createSequentialGroup() .addComponent(jLabel1)</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)</p><p>.addComponent(txtPlaca, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addComponent(txtMarca, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))</p><p>.addComponent(txtCor, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addGroup(jpPesquisaLayout.createSequentialGroup()</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)</p><p>.addComponent(jLabel2) .addComponent(jLabel3)) .addGap(26, 26, 26)))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)</p><p>.addComponent(txtEntrada,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addComponent(txtSaida, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)</p><p>.addGroup(jpPesquisaLayout.createSequentialGroup()</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)</p><p>.addComponent(jLabel4) .addComponent(jLabel5)) .addGap(26, 26, 26)))</p><p>.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)</p><p>.addGroup(jpPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)</p><p>.addComponent(btnCadastrar) .addComponent(btnAlterar) .addComponent(btnExcluir)</p><p>.addComponent(btnListar)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)</p><p>.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(15,</p><p>Short.MAX_VALUE)) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());</p><p>getContentPane().setLayout(layout); layout.setHorizontalGroup(</p><p>layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap()</p><p>.addComponent(jpPesquisa, javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); layout.setVerticalGroup(</p><p>layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)</p><p>.addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jpPesquisa,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,</p><p>javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(125, Short.MAX_VALUE)) ); pack(); }//</p><p></editor-fold> private void txtPesquisaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your</p><p>handling code here: } private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) { try{ CarroDAO</p><p>carroDAO = new CarroDAO(); this.carroSelecionado = carroDAO.buscarPorPlaca(this.txtPesquisa.getText()); if</p><p>(this.carroSelecionado == null) { JOptionPane.showMessageDialog(null,"Nenhum carro encontrado!"); return; }</p><p>this.txtPlaca.setText(this.carroSelecionado.getPlaca()); this.txtMarca.setText(this.carroSelecionado.getMarca());</p><p>this.txtCor.setText(this.carroSelecionado.getCor());</p><p>this.txtEntrada.setText(this.carroSelecionado.getHoraEntrada().toString());</p><p>this.txtSaida.setText(this.carroSelecionado.getHoraSaida().toString()); this.edicao = true; }catch(Exception e){</p><p>e.printStackTrace(); JOptionPane.showMessageDialog(null,"Não foi possível buscar o Carro!"); } } private void</p><p>btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) { Carro carro = new Carro(); CarroDAO dao = new</p><p>CarroDAO(); carro.setPlaca(txtPlaca.getText()); carro.setMarca(txtMarca.getText());</p><p>carro.setCor(txtCor.getText()); carro.setHoraEntrada(Integer.valueOf(txtEntrada.getText()));</p><p>carro.setHoraSaida(Integer.valueOf(txtSaida.getText())); if (dao.inserir(carro)) {</p><p>JOptionPane.showMessageDialog(null, "Carro cadastrado!"); } } private void</p><p>btnAlterarActionPerformed(java.awt.event.ActionEvent evt) { CarroDAO carroDAO = new CarroDAO();</p><p>this.carroSelecionado.setPlaca(this.txtPlaca.getText()); this.carroSelecionado.setMarca(this.txtMarca.getText());</p><p>this.carroSelecionado.setCor(this.txtCor.getText());</p><p>this.carroSelecionado.setHoraEntrada(Integer.parseInt(this.txtEntrada.getText()));</p><p>this.carroSelecionado.setHoraSaida(Integer.parseInt(this.txtSaida.getText())); if</p><p>(carroDAO.alterar(this.carroSelecionado)) { JOptionPane.showMessageDialog(null,"Carro alterado com</p><p>sucesso!"); } } private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) { CarroDAO dao = new</p><p>CarroDAO(); if (dao.remover(this.carroSelecionado)) { JOptionPane.showMessageDialog(null,"Carro excluído</p><p>com sucesso!"); } } private void btnListarActionPerformed(java.awt.event.ActionEvent evt) { String consulta</p><p>= "select * FROM Carros"; AcessoDB acesso = new AcessoDB(); if (acesso.conectar()) { try{ PreparedStatement</p><p>stm = acesso.con.prepareStatement(consulta); rs = stm.executeQuery(); if (!rs.next()) {</p><p>JOptionPane.showMessageDialog(null,"Nenhum carro encontrado!"); } ArrayList<String> ar = new ArrayList<>();</p><p>String linha = String.format("%6s|%-10s|%10s|%5s|%5s" ,"placa","marca","cor","Entrada","Saída"); ar.add(linha);</p><p>while(rs.next()){ linha = String.format("%6s|%-10s|%10s|%5s|%5s", rs.getString("placa")</p><p>,rs.getString("marca"),rs.getString("cor"),rs.getString("horaEntrada") ,rs.getString("horaSaida")); ar.add(linha); }</p><p>String vet[] = new String[ar.size()]; for(int i = 0; i < ar.size(); i++){ vet[i] = ar.get(i); } this.listaCarros.setFont(new</p><p>Font("Courier New", Font.PLAIN, 11)); this.listaCarros.setListData(vet); this.listaCarros.setSelectedIndex(1);</p><p>}catch(Exception e){ e.printStackTrace(); JOptionPane.showMessageDialog(null,"Não foi possível listar os</p><p>carros!"); } } } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the</p><p>Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If</p><p>Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see</p><p>http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for</p><p>(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if</p><p>("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } }</p><p>catch (ClassNotFoundException ex) {</p><p>java.util.logging.Logger.getLogger(App.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch</p><p>(InstantiationException ex) {</p><p>java.util.logging.Logger.getLogger(App.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch</p><p>(IllegalAccessException ex) {</p><p>java.util.logging.Logger.getLogger(App.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch</p><p>(javax.swing.UnsupportedLookAndFeelException ex) {</p><p>java.util.logging.Logger.getLogger(App.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-</p><p>fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new</p><p>App().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btnAlterar; private</p><p>javax.swing.JButton btnCadastrar; private javax.swing.JButton btnExcluir; private javax.swing.JButton btnListar;</p><p>private javax.swing.JButton btnPesquisar; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2;</p><p>private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private</p><p>javax.swing.JScrollPane jScrollPane1; private javax.swing.JPanel jpPesquisa; private javax.swing.JList<String></p><p>listaCarros; private javax.swing.JTextField txtCor; private javax.swing.JTextField txtEntrada; private</p><p>javax.swing.JTextField txtMarca; private javax.swing.JTextField txtPesquisa; private javax.swing.JTextField</p><p>txtPlaca; private javax.swing.JTextField txtSaida; // End of variables declaration } CLASSE CARRODAO package</p><p>estacionamento.dao; import estacionamento.db.AcessoDB; import estacionamento.model.Carro; import</p><p>java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import</p><p>javax.swing.JOptionPane; public class CarroDAO { public Carro buscarPorPlaca(String placa){ AcessoDB acesso</p><p>= new AcessoDB(); Carro carro = new Carro(); ResultSet rs; if (acesso.conectar()) { try{ String consulta = "select *</p><p>from Carros where placa = '" + placa.trim() + "'"; PreparedStatement stm =</p><p>acesso.con.prepareStatement(consulta); rs = stm.executeQuery(); if (rs.next()) { if</p><p>(Integer.parseInt(rs.getString("id")) > 0) { carro.setId(Integer.parseInt(rs.getString("id")));</p><p>carro.setPlaca(rs.getString("placa"));</p><p>carro.setMarca(rs.getString("marca")); carro.setCor(rs.getString("cor"));</p><p>carro.setHoraEntrada(Integer.parseInt(rs.getString("horaEntrada")));</p><p>carro.setHoraSaida(Integer.parseInt(rs.getString("horaSaida"))); } } }catch(Exception e){</p><p>JOptionPane.showMessageDialog(null, "Não foi possível busca o Carro."); return null; } } acesso.desconectar();</p><p>return carro; } public boolean inserir(Carro carro){ AcessoDB acesso = new AcessoDB(); if (acesso.conectar()) {</p><p>try{ String consulta = "INSERT into Carros(placa,marca,cor,horaEntrada,horaSaida)" + " VALUES('" +</p><p>carro.getPlaca() + "','" + carro.getMarca() + "','" + carro.getCor() + "'," + carro.getHoraEntrada() + "," +</p><p>carro.getHoraSaida() + ")"; Statement st = acesso.con.createStatement(); st.executeUpdate(consulta);</p><p>}catch(Exception e){ JOptionPane.showMessageDialog(null, "Carro não incluído."); return false; } }</p><p>acesso.desconectar(); return true; } public boolean alterar(Carro carro){ AcessoDB acesso = new AcessoDB(); if</p><p>(acesso.conectar()) { try{ String consulta = "UPDATE Carros SET placa='" +carro.getPlaca()+ "', marca='" +</p><p>carro.getMarca() + "', cor ='"+ carro.getCor()+ "',horaEntrada=" + carro.getHoraEntrada() + ", horaSaida=" +</p><p>carro.getHoraSaida()+ " WHERE id = " + carro.getId()+ ""; Statement st = acesso.con.createStatement();</p><p>st.executeUpdate(consulta); }catch(Exception e){ e.printStackTrace(); JOptionPane.showMessageDialog(null,</p><p>"Carro não alterado."); return false; } } acesso.desconectar(); return true; } public boolean remover(Carro carro){</p><p>AcessoDB acesso = new AcessoDB(); if (acesso.conectar()) { try{ String consulta = "DELETE FROM Carros</p><p>WHERE id =" + carro.getId(); Statement st = acesso.con.createStatement(); st.executeUpdate(consulta);</p><p>}catch(Exception e){ e.printStackTrace(); JOptionPane.showMessageDialog(null, "Carro não excluído!"); } }</p><p>acesso.desconectar(); return</p><p>true; } public boolean listar(){ AcessoDB acesso = new AcessoDB(); Carro carro = new Carro(); ResultSet rs; if</p><p>(acesso.conectar()) { try{ String consulta = "SELECT * FROM Carros"; PreparedStatement stm =</p><p>acesso.con.prepareStatement(consulta); rs = stm.executeQuery(); String linha = String.format("%3s|%-</p><p>15s|%10s|%10s|%10s", "placa", "marca","cor", "Entrada", "SaÃda"); System.out.println(linha); while(rs.next()){ if</p><p>(Integer.parseInt(rs.getString("placa")) > 0) { carro.setPlaca(rs.getString("placa"));</p><p>carro.setMarca(rs.getString("marca")); carro.setCor(rs.getString("cor"));</p><p>carro.setHoraEntrada(Integer.parseInt(rs.getString("horaEntrada")));</p><p>carro.setHoraSaida(Integer.parseInt(rs.getString("horaSaida"))); linha = String.format("%3s|%-</p><p>15s|%10s|%10s|%10s", carro.getPlaca(), carro.getMarca(), carro.getCor(), carro.getHoraEntrada().toString(),</p><p>carro.getHoraSaida().toString()); System.out.println(linha); } } rs = stm.executeQuery(); }catch(Exception e){</p><p>e.printStackTrace(); System.out.println("Lista não gerada"); return false; } } acesso.desconectar(); return true; } }</p><p>CLASSE ACESSODB package estacionamento.db; import java.io.File; import java.sql.Connection; import</p><p>java.sql.DriverManager; import javax.swing.JOptionPane; public class AcessoDB { public Connection con; private</p><p>static final String ARQUIVO_BANCO = "carrosDB.accdb"; private static final String BANCO = "jdbc:ucanaccess://"</p><p>+ ARQUIVO_BANCO ; public boolean conectar(){ try{ File arquivoBanco = new File(ARQUIVO_BANCO); if</p><p>(!arquivoBanco.exists()) { JOptionPane.showMessageDialog(null, "Arquivo de banco não encontrado."); } con =</p><p>DriverManager.getConnection(BANCO); } catch(Exception e){ JOptionPane.showMessageDialog(null,</p><p>e.getMessage()); return false; } return true; } public boolean desconectar(){ con = null; if(con == null){ return true; }</p><p>return false; } } CLASSE CARRO package estacionamento.model; public class Carro { private Integer id; private</p><p>String placa, marca, cor; private Integer horaEntrada, horaSaida; public Carro() { } public Carro(Integer id) { this.id</p><p>= id; } public Carro(String placa) { this.placa = placa; } public Carro(Integer horaEntrada, Integer horaSaida) {</p><p>this.horaEntrada = horaEntrada; this.horaSaida = horaSaida; } public Carro(String placa, String marca, String cor,</p><p>Integer id, Integer horaEntrada, Integer horaSaida) { this.placa = placa; this.marca = marca; this.cor = cor; this.id</p><p>= id; this.horaEntrada = horaEntrada; this.horaSaida = horaSaida; } public String getPlaca() { return placa; } public</p><p>void setPlaca(String placa) { this.placa = placa; } public String getMarca() { return marca; } public void</p><p>setMarca(String marca) { this.marca = marca; } public String getCor() { return cor; } public void setCor(String cor) {</p><p>this.cor = cor; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer</p><p>getHoraEntrada() { return horaEntrada; } public void setHoraEntrada(Integer horaEntrada) { this.horaEntrada =</p><p>horaEntrada; } public Integer getHoraSaida() { return horaSaida; } public void setHoraSaida(Integer horaSaida) {</p><p>this.horaSaida = horaSaida; } }</p>