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(); } }