Programa em MVC
olá sou novo aqui no fórum
preciso de ajuda para desenvolver o seguinte programinha em java :
Desenvolver um programa Console em JAVA na IDE Eclipse, com acesso ao Banco de Dados PostgreSQL via JDBC utilizando o conceito de Programação em MVC.
Você deverá criar nesse programa duas telas para inserção de dados no Banco de Dados e uma tela para exibir os dados cadastrados utilizando JOIN em uma consulta SQL.
Tentei programar alguma coisa mas o que pega é esse conceito em mvc, se alguém puder me dar algum exemplo disso em java eu agradeço.
obrigado
preciso de ajuda para desenvolver o seguinte programinha em java :
Desenvolver um programa Console em JAVA na IDE Eclipse, com acesso ao Banco de Dados PostgreSQL via JDBC utilizando o conceito de Programação em MVC.
Você deverá criar nesse programa duas telas para inserção de dados no Banco de Dados e uma tela para exibir os dados cadastrados utilizando JOIN em uma consulta SQL.
Tentei programar alguma coisa mas o que pega é esse conceito em mvc, se alguém puder me dar algum exemplo disso em java eu agradeço.
obrigado
João Henrique
Curtidas 0
Respostas
João Henrique
22/09/2015
package Formularios;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Window;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Principal extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Principal frame = new Principal();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Principal() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("Menu");
menuBar.add(mnNewMenu);
JLabel lblCliente = new JLabel("Cliente");
mnNewMenu.add(lblCliente);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JButton btnNewButton = new JButton("CADASTRO CLIENTES");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
FrmEstado frm = new FrmEstado();
frm.setVisible(true);
}
});
JButton btnCadastroProdutos = new JButton("CADASTRO PRODUTOS ");
btnCadastroProdutos.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FrmTeste tela = new FrmTeste();
tela.setVisible(true);
}
});
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(90)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addComponent(btnCadastroProdutos)
.addComponent(btnNewButton))
.addContainerGap(197, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(74)
.addComponent(btnNewButton)
.addGap(18)
.addComponent(btnCadastroProdutos)
.addContainerGap(93, Short.MAX_VALUE))
);
contentPane.setLayout(gl_contentPane);
}
}
GOSTEI 0
João Henrique
22/09/2015
package Formularios;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import utilitarios.ConectaBanco;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.GroupLayout;
/**
*
* @author
*/
public class FrmTeste extends javax.swing.JFrame {
ConectaBanco conecta = new ConectaBanco();
/**
* Creates new form FrmEstado
*/
public FrmTeste() {
initComponents();
conecta.conexao();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jTextField_Cod = new javax.swing.JTextField();
jTextField_Nome = new javax.swing.JTextField();
jTextField_End = new javax.swing.JTextField();
jTextField_Tel = new javax.swing.JTextField();
jButton_Inserir = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Cadastro Cliente");
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jLabel2.setText("CODIGO");
jLabel3.setText("NOME");
jLabel4.setText("ENDEREÇO");
jLabel5.setText("TELEFONE");
jTextField_Cod.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldCodActionPerformed(evt);
}
});
jTextField_Nome.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldNomeActionPerformed(evt);
}
});
jButton_Inserir.setText("Inserir");
jButton_Inserir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonInserirActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(24)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel3)
.addComponent(jLabel2))
.addGap(53)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.LEADING, false)
.addComponent(jTextField_Tel)
.addComponent(jTextField_End)
.addComponent(jTextField_Nome)
.addComponent(jTextField_Cod, GroupLayout.DEFAULT_SIZE, 271, Short.MAX_VALUE))
.addGap(265))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton_Inserir)))
.addContainerGap(138, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField_Cod, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField_Nome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(8)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextField_End, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField_Tel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addComponent(jButton_Inserir)
.addContainerGap(348, Short.MAX_VALUE))
);
jPanel1.setLayout(jPanel1Layout);
jLabel1.setText("Formulario de Cadastro de Clientes ");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGap(301, 301, 301)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jTextFieldCodActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextFieldNomeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButtonInserirActionPerformed(java.awt.event.ActionEvent evt) {
try {
PreparedStatement pst = conecta.conn.prepareStatement("insert into teste (codigo,nome,endereco,telefone)values(?,?,?,?)");
pst.setString(1, jTextField_Cod.getText());
pst.setString(2, jTextField_End.getText());
pst.setString(3, jTextField_Nome.getText());
pst.setString(4, jTextField_Tel.getText());
pst.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"Salvo com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane,"Erro na Inserção! \n ERRO: "+ex);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FrmEstado().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton_Inserir;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField_Cod;
private javax.swing.JTextField jTextField_End;
private javax.swing.JTextField jTextField_Nome;
private javax.swing.JTextField jTextField_Tel;
// End of variables declaration
}
GOSTEI 0
João Henrique
22/09/2015
package Formularios;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import utilitarios.ConectaBanco;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.GroupLayout;
/**
*
* @author
*/
public class FrmEstado extends javax.swing.JFrame {
ConectaBanco conecta = new ConectaBanco();
/**
* Creates new form FrmEstado
*/
public FrmEstado() {
initComponents();
conecta.conexao();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jTextFieldCod = new javax.swing.JTextField();
jTextFieldNome = new javax.swing.JTextField();
jTextFieldEnd = new javax.swing.JTextField();
jTextFieldTel = new javax.swing.JTextField();
jButtonInserir = new javax.swing.JButton();
jButtonNovo = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Cadastro de Estado");
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jLabel2.setText("CODIGO");
jLabel3.setText("NOME");
jLabel4.setText("ENDEREÇO");
jLabel5.setText("TELEFONE");
jTextFieldCod.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldCodActionPerformed(evt);
}
});
jTextFieldNome.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldNomeActionPerformed(evt);
}
});
jButtonInserir.setText("Inserir");
jButtonInserir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonInserirActionPerformed(evt);
}
});
jButtonNovo.setText("Novo");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(24)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel3)
.addComponent(jLabel2))
.addGap(53)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.TRAILING)
.addComponent(jTextFieldCod, 536, 536, 536)
.addComponent(jTextFieldNome, Alignment.LEADING, 536, 536, 536)
.addComponent(jTextFieldTel, Alignment.LEADING, 536, 536, 536)
.addComponent(jTextFieldEnd, Alignment.LEADING, 536, 536, 536)))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButtonInserir)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(jButtonNovo)))
.addContainerGap(138, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextFieldCod, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextFieldNome, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(8)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextFieldEnd, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextFieldTel, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(jPanel1Layout.createParallelGroup(Alignment.BASELINE)
.addComponent(jButtonInserir)
.addComponent(jButtonNovo))
.addContainerGap(348, Short.MAX_VALUE))
);
jPanel1.setLayout(jPanel1Layout);
jLabel1.setText("Formulario de Cadastro de Clientes ");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addGap(301, 301, 301)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(14, 14, 14)
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jTextFieldCodActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jTextFieldNomeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButtonInserirActionPerformed(java.awt.event.ActionEvent evt) {
try {
PreparedStatement pst = conecta.conn.prepareStatement("insert into teste2 (codigo,nome,endereco,telefone)values(?,?,?,?)");
pst.setString(1, jTextFieldCod.getText());
pst.setString(2, jTextFieldEnd.getText());
pst.setString(3, jTextFieldNome.getText());
pst.setString(4, jTextFieldTel.getText());
pst.executeUpdate();
JOptionPane.showMessageDialog(rootPane,"Salvo com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane,"Erro na Inserção! \n ERRO: "+ex);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(FrmEstado.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FrmEstado().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButtonInserir;
private javax.swing.JButton jButtonNovo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextFieldCod;
private javax.swing.JTextField jTextFieldEnd;
private javax.swing.JTextField jTextFieldNome;
private javax.swing.JTextField jTextFieldTel;
// End of variables declaration
}
GOSTEI 0
João Henrique
22/09/2015
package utilitarios;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class ConectaBanco {
public Statement stm;
public ResultSet rs;
private String driver = "org.postgresql.Driver";
private String caminho = "jdbc:postgresql://localhost:5432/db_teste";
private String usuario = "postgres";
private String senha = "h3g5b7c2";
public Connection conn;
public void conexao () {
try {
System.setProperty("jdbc.Drivers", driver);
conn= DriverManager.getConnection(caminho, usuario, senha);
JOptionPane.showMessageDialog(null,"Conectado com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro de conexao!\n Erro:"+ex.getMessage());
}
}
public void desconecta() {
try {
conn.close();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro ao fechar a conexao!\n Erro:"+ex.getMessage());
}
}
}
GOSTEI 0