Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
(Não e javascript/dhtml)
Ai galera pesso a ajuda de vocês sobre o enunciado/respostas/dicas para esse exercicío pq não adianta copiar e colar vou me aprofundar nas dicas e código para chegar na minha solução la vai galera.
Desenvolva uma aplicação em Java que execute uma consulta na
seguinte tabela de uma base de dados:
Prova
Campo Tipo Chave
CodigoFuncionario Int X
NomeFuncionario Varchar(35)
NumeroFilhos Int
A partir da consulta “SELECT * FROM Prova” sua aplicação deve
gerar um arquivo XML que obedeça o seguinte exemplo para todos
os funcionários com filhos:
<?xml version="1.0" encoding="ut-8"?>
<lista_funcionarios>
<funcionario>
<codigo_f>1</codigo_f>
<nome_f>João da Silva</nome_f>
<numero_filhos_f>2<numero_filhos_f>
</funcionario>
<funcionario>
<codigo_f>2</codigo_f>
<nome_f>Maria da Graça</nome_f>
<numero_filhos_f>2<numero_filhos_f>
</funcionario>
</lista_funcionarios>
(Banco de dados SQL)
Gostario também que você analisassem o grau de dificuldade e comentasse agradeço,
Att,
RainGraive
Boa noite Bruno se você não percebeu eu não entendo o enunciado estou pedindo dicas, comentários sobre creio que não vai ter problema desenvolver uma aplicação que consute o banco via jdbc trabalho exercendo funções de web master utilizando com frequência PHP mais sempre que tenho tempo leio e faço exercicíos de JAVA.
Boa Noite!
Primeiramente crie a classe de modelo Pessoa. A classe Pessoa deve ter os atributos referentes aos campos da tabela pessoa. Depois você pode criar um DAO para executar ações de banco de dados. Podendo ser um PessoaDAO que tem métodos para consultar, salvar etc. Depois disso você pode pensar numa classe utilitária pra transformar uma coleção de entidades Pessoa em arquivo XML.
Começa fazendo e vamos lhe dando as coordenadas.
A noite eu posto o código e desenvolvimento .
Thx,
Vergil
>
A noite eu posto o código e desenvolvimento .
Thx,
Vergil
Eis o código
package dao;
import factory.ConnectionFactory;
import modelo.Funcionario;
import java.sql.*;
import java.sql.PreparedStatement;
public class FuncionarioDAO {
private Connection connection;
String CodigoFuncionario;
String NomeFuncionario;
String NumeroFilhos;
public FuncionarioDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Funcionario funcionario) {
String sql = "INSERT INTO prova(CodigoFuncionario,NomeFuncionario,NumeroFilhos) VALUES(?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, funcionario.getCodigoFuncionario());
stmt.setString(2, funcionario.getNomeFuncionario());
stmt.setString(3, funcionario.getNumeroFilhos());
stmt.execute();
stmt.close();
} catch (SQLException u) {
throw new RuntimeException(u);
}
}
}
Fabrica de conexão
package factory;
// faz as importações de classes necessárias para o funcionamento do programa
import java.sql.Connection; // classe para tratamento de exceções
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
try {
return DriverManager.getConnection("jdbc:mysql://localhost/dbJava2", "root", "");
} catch (SQLException excecao) {
throw new RuntimeException(excecao);
}
}
}
Essa classe so para testa a conexão com banco
package factory;
import java.sql.Connection;
import java.sql.SQLException;
public class TestaConexao {
public static void main(String[] args) throws SQLException {
Connection connection = new ConnectionFactory().getConnection();
System.out.println("Conectado ao banco!");
connection.close();
System.out.println("Conexão encerrada!");
}
}
classe funcionario com os gets e sets
package modelo;
public class Funcionario {
String CodigoFuncionario;
String NomeFuncionario;
String NumeroFilhos;
public String getCodigoFuncionario() {
return CodigoFuncionario;
}
public void setCodigoFuncionario(String CodigoFuncionario) {
this.CodigoFuncionario = CodigoFuncionario;
}
public String getNomeFuncionario() {
return NomeFuncionario;
}
public void setNomeFuncionario(String NomeFuncionario) {
this.NomeFuncionario = NomeFuncionario;
}
public String getNumeroFilhos() {
return NumeroFilhos;
}
public void setNumeroFilhos(String NumeroFilhos) {
this.NumeroFilhos = NumeroFilhos;
}
}
e a tela seria a GUI onde tem os campos de texto os botão a validação
package gui;
import dao.FuncionarioDAO;
import javax.swing.JOptionPane;
import modelo.Funcionario;
public class FuncionarioGUI extends javax.swing.JFrame {
public FuncionarioGUI() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton3 = new javax.swing.JButton();
jLabelTitulo = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jPanel = new javax.swing.JPanel();
jLabelCodigo = new javax.swing.JLabel();
jLabeCpf = new javax.swing.JLabel();
jLabelEmail = new javax.swing.JLabel();
jTextFieldCodigoFuncionario = new javax.swing.JTextField();
jTextFieldNomeFuncionario = new javax.swing.JTextField();
jTextFieldNumeroFilhos = new javax.swing.JTextField();
jButtonLCadastrar = new javax.swing.JButton();
jButtonLimpar = new javax.swing.JButton();
jButtonSair = new javax.swing.JButton();
jButton3.setText("jButton3");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Cadastro de Usuários");
setAlwaysOnTop(true);
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
jLabelTitulo.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
jLabelTitulo.setForeground(new java.awt.Color(255, 0, 51));
jLabelTitulo.setText("Cadastro de Funcionários");
jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Cadastrar Funcionário", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N
jPanel.setForeground(new java.awt.Color(255, 255, 0));
jLabelCodigo.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
jLabelCodigo.setText("Código:");
jLabeCpf.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
jLabeCpf.setText("Nome:");
jLabelEmail.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
jLabelEmail.setText("Numero Filhos:");
jTextFieldNomeFuncionario.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldNomeFuncionarioActionPerformed(evt);
}
});
jTextFieldNumeroFilhos.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldNumeroFilhosActionPerformed(evt);
}
});
jButtonLCadastrar.setText("Cadastrar");
jButtonLCadastrar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonLCadastrarActionPerformed(evt);
}
});
jButtonLimpar.setText("Limpar");
jButtonLimpar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonLimparActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanelLayout = new javax.swing.GroupLayout(jPanel);
jPanel.setLayout(jPanelLayout);
jPanelLayout.setHorizontalGroup(
jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelCodigo)
.addComponent(jLabeCpf)
.addComponent(jLabelEmail))
.addGap(47, 47, 47)
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanelLayout.createSequentialGroup()
.addComponent(jButtonLCadastrar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE)
.addComponent(jButtonLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jTextFieldNomeFuncionario)
.addComponent(jTextFieldCodigoFuncionario)
.addComponent(jTextFieldNumeroFilhos, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanelLayout.setVerticalGroup(
jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextFieldCodigoFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanelLayout.createSequentialGroup()
.addComponent(jLabelCodigo)
.addGap(18, 18, 18)
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabeCpf)
.addComponent(jTextFieldNomeFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelEmail)
.addComponent(jTextFieldNumeroFilhos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(18, 18, 18)
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelLayout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButtonLimpar)
.addGap(121, 121, 121))
.addGroup(jPanelLayout.createSequentialGroup()
.addComponent(jButtonLCadastrar)
.addContainerGap())))
);
jButtonSair.setText("Sair");
jButtonSair.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonSairActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButtonSair)
.addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(0, 52, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonSair)
.addGap(0, 55, Short.MAX_VALUE))
);
jPanel.getAccessibleContext().setAccessibleName("Cadastro de Funcionários");
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()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabelTitulo)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabelTitulo)
.addGap(18, 18, 18)
.addComponent(jPanel2, 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 jButtonSairActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showConfirmDialog(null, "Tem certeza que deseja sair", "choose one", JOptionPane.YES_NO_OPTION);
System.exit(0);
}
private void jButtonLimparActionPerformed(java.awt.event.ActionEvent evt) {
jTextFieldCodigoFuncionario.setText("");
jTextFieldNomeFuncionario.setText("");
jTextFieldNumeroFilhos.setText("");
}
private void jButtonLCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
Funcionario funcionarios = new Funcionario();
funcionarios.setCodigoFuncionario(jTextFieldCodigoFuncionario.getText());
funcionarios.setNomeFuncionario(jTextFieldNomeFuncionario.getText());
funcionarios.setNumeroFilhos(jTextFieldNumeroFilhos.getText());
// fazendo a validação dos dados
if ((jTextFieldCodigoFuncionario.getText().isEmpty()) || (jTextFieldNomeFuncionario.getText().isEmpty()) || (jTextFieldNumeroFilhos.getText().isEmpty())) {
JOptionPane.showMessageDialog(null, "Os campos não podem retornar vazios");
} else {
// instanciando a classe UsuarioDAO do pacote dao e criando seu objeto dao
FuncionarioDAO dao = new FuncionarioDAO();
dao.adiciona(funcionarios);
JOptionPane.showMessageDialog(null, "Funcionário " + jTextFieldNomeFuncionario.getText() + " inserido com sucesso! ");
}
// apaga os dados preenchidos nos campos de texto
jTextFieldCodigoFuncionario.setText("");
jTextFieldNomeFuncionario.setText("");
jTextFieldNumeroFilhos.setText("");
}
private void jTextFieldNumeroFilhosActionPerformed(java.awt.event.ActionEvent evt) {
}
private void jTextFieldNomeFuncionarioActionPerformed(java.awt.event.ActionEvent evt) {
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FuncionarioGUI().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton3;
private javax.swing.JButton jButtonLCadastrar;
private javax.swing.JButton jButtonLimpar;
private javax.swing.JButton jButtonSair;
private javax.swing.JLabel jLabeCpf;
private javax.swing.JLabel jLabelCodigo;
private javax.swing.JLabel jLabelEmail;
private javax.swing.JLabel jLabelTitulo;
private javax.swing.JPanel jPanel;
private javax.swing.JPanel jPanel2;
private javax.swing.JTextField jTextFieldCodigoFuncionario;
private javax.swing.JTextField jTextFieldNomeFuncionario;
private javax.swing.JTextField jTextFieldNumeroFilhos;
// End of variables declaration
}
Estou usando o NeatBeans esta inserindo valores do tipo String do banco mais no teste pede int creio que tem que fazer a conversão com parse pelo fato dos campo receber string por padrão estou uzando o mySQL e o único banco que conheço mais eu preciso mudar para SQL lembrando no caso vou ter q criar um novo método com SELECT ? Boa noite galera até,
Att,
RainGraive
PreparedStatement tem os métodos próprios para se inserir tipos de dados definidos. Você tem por exemplo o setInt, setFloat e o melhor, setObject. Isso resolveria o problema dos tipos.
Faltam agora os métodos de excluir e consultar/listar. Pra excluir basta pegar o campo chave como parâmetro ou passando o objeto Funcionario.
public void exclui(Funcionario f) {
String sql = "delete from funcionarios where id = ?";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, f.getCodigoFuncionario());
stmt.execute();
stmt.close();
} catch (SQLException u) {
throw new RuntimeException(u);
}
}
E para consultar.
public List<Funcionario> listaTodos() {
String sql = "select * from funcionarios"
List<Funcionario> lista = new ArrayList<Funcionario>();
ResultSet rs = connection.prepareStatement(sql).executeQuery();
while (rs.next()) {
Funcionario f = new Funcionario();
f.setCodigoFuncionario(rs.getInt("codigo_funcionario"));
// demais campos
lista.add(f);
}
return lista;
}
Agora você poderia também implementar um método lista que recebe um filtro.
public List<Funcionario> lista(Funcionario f) {
// Código aqui
}
Só um detalhe. Nomes de atributos de classe devem seguir o padrão camel case e para além, devem começar com a primeira letra em minúsculo.
Boa Noite @RainGraive,
Acho que você não entendeu oque é 'o fórum'.
Não estamos aqui para 'fazer para você'. Apresente a sua tentativa, e as dúvidas.
Vou mover teu tópico para o subfórum correto.
JS :seta: Java