Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RainGraive

Java e XML

Recommended Posts

(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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.