Ajuda em JAVA

9 respostas
L

Bom dia Pessoal
Eu esto tentando criar um cadastro de perfume e consta muitos erros. Alguem pode me ajudar nos erros. Eu tento colocar o acesso a banco de dados e dar erro. Abaixo segue o que eu ja criei.

1) DB Connection

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class DBConnection {

//	configuracoes para usar o access

//	private static String driver = “sun.jdbc.odbc.JdbcOdbcDriver”;

//	static String url = “jdbc:odbc:cursojava”;

//    static String user = “”;

//  static String password = “”;
//	configuracoes para usar o mysql

private static String driver = com.mysql.jdbc.Driver;

static String url = jdbc:mysql://localhost:3306/curso”;

static String user = root;

static String password = senha aqui;
static {
	try {
		Class.forName(driver).newInstance();
	} catch (InstantiationException e) {
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
}

public static Connection getConnection() throws SQLException {
	return DriverManager.getConnection(url, user, password);
}

public static void closeConnection(Connection con) {
	if (con != null ) {
		try {
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

public static void closeStatement(Statement st) {
	if (st != null) {
		try {
			st.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

public static void closeResultSet(ResultSet rs) {
	if (rs != null) {
		try {
			((ResultSet)rs).close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

}

[b]2) ExemploddeUso

import java.util.Collection;
import javax.swing.JOptionPane;

/*

  • To change this template, choose Tools | Templates

  • and open the template in the editor.
    /
    /
    *

  • @author
    */
    public class ExemploDeUso {

    public static void main(String[] args) {
    
    String codigo = JOptionPane.showInputDialog(Digite o codigo);
    
    String nome = JOptionPane.showInputDialog(Digite o Nome do Perfume);
    
    String marca = JOptionPane.showInputDialog("Digite a Marca/Linha ");
    
    String categoria  = JOptionPane.showInputDialog(Digite a categoria);
    
    String descricao = JOptionPane.showInputDialog("Digite a descricao ");
    
    String volumetria = JOptionPane.showInputDialog(Digite volumetria);
    
    String n = JOptionPane.showInputDialog("Digite numQuantidade ");
    
    int numQuantidade = Integer.parseInt(n);
    
    Perfume obj = new Perfume(codigo, nome, marca, categoria, descricao, volumetria, numQuantidade);
    
     PerfumeDAO dao = new PerfumeDAO();
    
     dao.inserirPerfume(obj);
    
     Collection<Perfume> perfumes = dao.selecionarTodos();
    
     Perfume objParaAlterar = null;
    
     System.out.println("-------Listagem------------");
     for (Perfume meuPerfume : perfumes) {
         System.out.println(meuPerfume);
         if (objParaAlterar == null) {
             objParaAlterar = meuPerfume;
         }
     }
    
     objParaAlterar.setNome("mudei o nome");
     dao.alterarPerfume(objParaAlterar);
    
     perfumes = dao.selecionarTodos();
    
     System.out.println("-------Alterado------------");
     for (Perfume meuPerfume : perfumes) {
         System.out.println(meuPerfume);
     }
    
     dao.excluirPerfume(objParaAlterar);
    
     perfumes = dao.selecionarTodos();
    
     System.out.println("-------Excluido------------");
     for (Perfume meuPerfume : perfumes) {
         System.out.println(meuPerfume);
     }
    

    }
    }

3)DAO

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.Collection;

public abstract class DAO {

protected int executeSQL(String sql) {
	int r = 0;
	Connection con = null;
	Statement st = null;

	try {
		con = DBConnection.getConnection();
		st = con.createStatement();

		r = st.executeUpdate(sql);
		
		
	} catch (SQLException e) {
		System.out.println("erro "+e);
	} finally {
		DBConnection.closeStatement(st);
		DBConnection.closeConnection(con);
		
	}

	return r;
}


protected Collection executeQuery(String sql) {
	ResultSet rs = null;
	Connection con = null;
	Statement st = null;
	ArrayList al = new ArrayList();

	try {
		con = DBConnection.getConnection();
		st = con.createStatement();

		rs = st.executeQuery(sql);
		
		while (rs.next()) {
			al.add(createObject(rs));
		}
	} catch (SQLException e) {
		System.out.println("erro "+e);
	} finally {
		DBConnection.closeResultSet(rs);
		DBConnection.closeStatement(st);
		DBConnection.closeConnection(con);
	}

	return al;
}


protected abstract Object createObject(ResultSet rs) throws SQLException;

}

4) Perfume

public class Perfume {

private String codigo;
private String nome;
private String marca;
private String categoria;
private String descricao;
private String volumetria;
private int numQuantidade;


public Perfume() {
}

public Perfume(String codigo, String nome, String marca, String categoria, String descricao, String volumetria, int numQuantidade) {
    this.codigo = codigo;
    this.nome = nome;
    this.marca = marca;
    this.categoria = categoria;
    this.descricao = descricao;
    this.volumetria = volumetria;
    this.numQuantidade = numQuantidade;
}
Perfume(String codigo, String nome, String marca, String categoria, String descricao, String volumetria, int numQuantidade) {

//throw new UnsupportedOperationException(“Not yet implemented”); //verificar posteriormente//

}
@Override
public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }
    if (getClass() != obj.getClass()) {
        return false;
    }
    final Perfume other = (Perfume) obj;
    if (this.codigo != other.codigo && (this.codigo == null || !this.codigo.equals(other.codigo))) {
        return false;
    }
    if (this.nome != other.nome && (this.nome == null || !this.nome.equals(other.nome))) {
        return false;
    }
    if (this.marca != other.marca && (this.marca == null || !this.marca.equals(other.marca))) {
        return false;
    }
    if (this.categoria != other.categoria && (this.categoria == null || !this.categoria.equals(other.categoria))) {
        return false;
    }
    if (this.descricao != other.descricao && (this.descricao == null || !this.descricao.equals(other.descricao))) {
        return false;
    }
    if (this.volumetria != other.volumetria && (this.volumetria == null || !this.volumetria.equals(other.volumetria))) {
        return false;
    }
    if (this.numQuantidade != other.numQuantidade) {
        return false;
    }
    return true;
}

@Override
public int hashCode() {
    int hash = 7;
    hash = 41 * hash + (this.codigo != null ? this.codigo.hashCode() : 0);
    hash = 41 * hash + (this.nome != null ? this.nome.hashCode() : 0);
    hash = 41 * hash + (this.marca != null ? this.marca.hashCode() : 0);
    hash = 41 * hash + (this.categoria != null ? this.categoria.hashCode() : 0);
    hash = 41 * hash + (this.descricao != null ? this.descricao.hashCode() : 0);
    hash = 41 * hash + (this.volumetria != null ? this.volumetria.hashCode() : 0);
    hash = 41 * hash + this.numQuantidade;
    return hash;
}

@Override
public String toString() {
    return  this.getCodigo() + "," +
            this.getNome() + "," +
            this.getMarca() + "," +
            this.getCategoria() + "," +
            this.getDescricao() + "," +
            this.getVolumetria() + "," +
            this.getNumQuantidade();
}

public String getCodigo() {
    return codigo;
}

public void setCodigo(String codigo) {
    this.codigo = codigo;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getMarca() {
    return marca;
}

public void setMarca(String marca) {
    this.marca = marca;
}

public String getCategoria() {
    return categoria;
}

public void setCategoria(String categoria) {
    this.categoria = categoria;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public String getVolumetria() {
    return volumetria;
}

public void setVolumetria(String volumetria) {
    this.volumetria = volumetria;
}

public int getNumQuantidade() {
    return numQuantidade;
}

public void setNumQuantidade(int numQuantidade) {
    this.numQuantidade = numQuantidade;
}

}

5)PerfumeDAO

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Collection;

public class PerfumeDAO extends DAO {

private static String TABELA = "PERFUME";

public int inserirPerfume(Perfume obj) {
    return executeSQL("INSERT INTO " + TABELA + " (CODIGO,NOME,MARCA,CATEGORIA,DESCRICAO,VOLUMETRIA,NUMQUANTIDADE) " + "VALUES('" + obj.getCodigo() + "','" + obj.getNome() + "','" + obj.getMarca() + "','" + obj.getCategoria() + "','" + obj.getDescricao() + "','" + obj.getVolumetria() + "'," + obj.getNumQuantidade() + ") ");
}

public Collection selecionarTodos() {

    return executeQuery("SELECT * FROM " + TABELA);

}

public int excluirPerfume(Perfume obj) {
    return executeSQL("DELETE FROM " + TABELA + " WHERE CODIGO='" + obj.getCodigo() + "'");
}

public int alterarPerfume(Perfume obj) {
    return executeSQL("UPDATE " + TABELA + " SET NOME='" + obj.getNome() + "'," + "MARCA='" + obj.getMarca() + "'," + "CATEGORIA='" + obj.getCategoria() + "'," + "DESCRICAO='" + obj.getDescricao() + "'," + "VOLUMETRIA='" + obj.getVolumetria() + "',NUMQUANTIDADE= " + obj.getNumQuantidade() + " WHERE CODIGO='" + obj.getCodigo() + "' ");

}

@Override
protected Object createObject(ResultSet rs) throws SQLException {
    Perfume obj = new Perfume();

    obj.setCodigo(rs.getString("CODIGO"));
    obj.setNome(rs.getString("NOME"));
    obj.setMarca(rs.getString("MARCA"));
    obj.setCategoria(rs.getString("CATEGORIA"));
    obj.setDescricao(rs.getString("DESCRICAO"));
    obj.setVolumetria(rs.getString("VOLUMETRIA"));
    obj.setNumQuantidade(rs.getInt("NUMQUANTIDADE"));
    return obj;
}

}

6) Cadastro

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

/*
  • To change this template, choose Tools | Templates

  • and open the template in the editor.
    
    <em>/
    
    import javax.swing.JLabel;
    
    import javax.swing.JPanel;
    
    import javax.swing.JScrollPane;
    
    import javax.swing.JTable;
    
    import javax.swing.JTextField;
    
    import javax.swing.table.DefaultTableModel;
    
    import javax.swing.table.JTableHeader;
    
    /</em>*
    
  • @author
    
    */
    
    public class Cadastro extends JFrame { // essa classe é uma janela//
    
    JButton salvar = new JButton(Salvar);
    
    JTextField codigo = new JTextField();
    
    JTextField nome = new JTextField();
    
    JTextField marca = new JTextField();
    
    JTextField categoria = new JTextField();
    
    JTextField descricao = new JTextField();
    
    JTextField volumetria = new JTextField();
    
    JTextField numQuantidade = new JTextField();
    
    JLabel labelCodigo = new JLabel(Codigo);
    
    JLabel labelNome = new JLabel(Nome);
    
    JLabel labelMarca = new JLabel(Marca);
    
    JLabel labelCategoria= new JLabel(Categoria);
    
    JLabel labelDescricao = new JLabel(Descricao);
    
    JLabel labelVolumetria = new JLabel(Volumetria);
    
    JLabel labelNumQuantidade = new JLabel(NumQuantidade);
    
    JPanel painel = new JPanel();
    
    public Cadastro() {  // construtor//
    
    super(Cadastro de Perfume);
    
    setLayout(new BorderLayout()); // define que o frame vai ser tratado em divisões//
    
    painel.setLayout(new FlowLayout());
    
    codigo.setColumns(5);
     nome.setColumns(20);
     marca.setColumns(10);
     categoria.setColumns(10);
     descricao.setColumns(30);
     volumetria.setColumns(5);
     numQuantidade.setColumns(5);
    
     painel.add(labelCodigo);
     painel.add(codigo);
     painel.add(labelNome);
     painel.add(nome);
     painel.add(labelMarca);
     painel.add(marca);
     painel.add(labelCategoria);
     painel.add(categoria);
     painel.add(labelDescricao);
     painel.add(descricao);
     painel.add(labelVolumetria);
     painel.add(volumetria);
     painel.add(labelNumQuantidade);
     painel.add(numQuantidade);
    
     salvar.addActionListener(new ActionListener(){ //tratador de eventos//
         public void actionPerformed(ActionEvent arg0) {
             System.out.println("codigo="+codigo.getText());
             System.out.println("texto="+nome.getText());
             System.out.println("marca="+marca.getText());
             System.out.println("categoria="+categoria.getText());
             System.out.println("descricao="+descricao.getText());
             System.out.println("volumetria="+volumetria.getText());
             System.out.println("numQuantidade="+numQuantidade.getText());
             //criar o objeto aqui com todos os dados dos campos
             //chamar o dao para salvar
         }
    
     });
    
     add(painel, BorderLayout.CENTER);
     add(salvar, BorderLayout.SOUTH);
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setSize(700, 400);
     setVisible(true);
    
    }
    
    public static void main(String args[]) {
    
    new Cadastro();
    
    }
    
    }
    

7) TAbela

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.JTableHeader;

/**
*

  • @author
    */
    public class Tabela extends JFrame {

    JTable tabela = new JTable(0, 4);
    
    JScrollPane scroll = new JScrollPane(tabela);
    
    JButton excluir = new JButton(Excluir);
    

    public Tabela() {
    super(“teste Janela”);

    setLayout(new BorderLayout());
     
     final DefaultTableModel model = (DefaultTableModel) tabela.getModel();
     Object header[] = {"Codigo", "Nome", "Marca","Categoria","Descricao","Volumetria","NumQuantidade",};
     model.setColumnIdentifiers(header);
    
     for (int i = 0; i < 50; i++) {
         Object value[] = {"valor1"+i, "valor2", "valor3", "valor4", "valor5", "valor6", "valor7" };
         model.addRow(value);
    
     }
    
     
    
     excluir.addActionListener(new ActionListener(){
    
         public void actionPerformed(ActionEvent arg0) {
             int coluna = tabela.getSelectedColumn();
             int linha = tabela.getSelectedRow();
             System.out.println(model.getValueAt(linha, coluna));
             
             Object id = model.getValueAt(linha, coluna);
             //remover do banco de dados com esse id
             
             //remover da janela
             model.removeRow(linha);
         }
         
     });
     
     
     add(scroll, BorderLayout.CENTER);
     add(excluir, BorderLayout.SOUTH);
    
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setSize(600, 400);
     setVisible(true);
    

    }

    public static void main(String args[]) {
    
    new Tabela();
    
    }
    
    }
    

9 Respostas

CintiaDR

Eu nem consegui ler seu codigo.

Comece por aqui:
http://www.guj.com.br/posts/list/50115.java

Depois, poste QUAIS os erros (de compilação ou quais exceções de execução) e apenas trechos relevantes.
Sem saber quais os seus problemas ou um mínimo de abstração, inviável.

caiomacedor

É brother se formos ler esse teu codigo como esta vamos perder muito tempo. siga a dica da CintiaDR.

L

NA verdade eu quero interligar essas classe para que elas funcionem.
As classe que eu criei foram : DBConnection.java, Perfume.java, DAO.java, ExemploDeUso.java,Tabela.java e Cadastro.java.
Eu nao consigo fazer essa classes interagirem entre si, deve ter algum comando que ligam essas classes. e façam o banco de dados funcionar.
Eu nao sei se tenho que criar mais alguma classe.
Os errro que aparecem: na classes que eu criei infoma que nao tem metodo principal
Abraços

caiomacedor

vc esta usando alguma framekork? Ou apenas jps e servlet?

caiomacedor

Opa desculpe eu quis dizer jsp e servlet…

L

Eu estou usando o netbeans para criar o cadastro.

caiomacedor

lauders, eu nunca usei Netbeans, sempre uso Eclipse. Eu tenho projetinhos ainda de quando eu estava na faculdade que faz isso que vc esta querendo. Pelo jeito vc não tem nunhuma esperiencia com Java para web. Te aconselho dar uma estudada em uma otima apostila para iniciantes. Que é a caelum fj-21. Ela esta disponivel pra download no site da caelum.

LPJava

veja se o post a seguir pode ajudar.

conexao java mysql

realmente ler seu codigo é uma tarefa muito ardua.

A

Pessoal! estou com um javascript… q preciso q ele capture um arquivo em line printer de um pasta e jogue p outra, sendo q capture sempre o primeiro arquivo… sou estagiário, e mexo com softwre pronto… quem puder me ajudar ta aqui o script…

Criado 2 de junho de 2009
Ultima resposta 4 de jun. de 2009
Respostas 9
Participantes 5