Estou tentando puxar os elementos de um arraylist de uma classe, para outra só para poder implementar no banco de dados.
MAIN
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collections;
public class Rec1tlp1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
Lista_Produtos menu = new Lista_Produtos();
String url = "jdbc:postgresql://localhost:5432/rec1tlp1?user=postgres&password=1234";
java.util.Scanner leia = new java.util.Scanner(System.in);
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
int opcao = 1;
boolean continua = true;
while (opcao != 0) {
System.out.println("Menu");
System.out.println("1 – Cadastrar um Produto no Banco de Dados");
System.out.println("2 - Remover um Produto do Bando de Dados pelo ID");
System.out.println("3 - Cadastrar um Produto na Lista de produtos não vendidos");
System.out.println("4 - Remover um Produto da Lista de produtos não vendidos pelo nome");
System.out.println("5 - Buscar Produtos por uma descrição no Banco de dados");
System.out.println("6- Imprimir os Produtos cadastrados no Banco de dados ordenados pelo id");
System.out.println("7- Imprimir a Lista de produtos não vendidos em ordem alfabética pelo nome dos produtos");
System.out.println("8 – Cadastrar a venda de um produto no banco de dados a partir do ID, decrementando a");
System.out.println("9- Cadastrar no Banco de Dados a Lista de produtos não vendidos");
System.out.println("10 – Imprimir os 10 produtos vendidos mais baratos");
System.out.println("0 – Sair");
do {
try {
System.out.println("Opção:");
opcao = Integer.parseInt(leia.nextLine());
continua = false;
} catch (NumberFormatException e) {
System.out.println("Valor não numérico. Tente novamente!");
}
} while (continua);
switch (opcao) {
case 0: {
System.out.println("Encerrando o programa. Obrigada!");
break;
}
case 1: {
System.out.println("Digite o nome do produto:");
String nome = leia.nextLine();
System.out.println("Digite a descrição do produto:");
String descricao = leia.nextLine();
System.out.println("Digite o preço do produto:");
double preco = Double.parseDouble(leia.nextLine());
System.out.println("Dite a quantidade em estoque:");
int quantidade = Integer.parseInt(leia.nextLine());
continua = false;
String sql = "insert into produto (nome, descricao, preco, quantidade_estoque)"
+ "values ('" + nome + "', '" + descricao + "', " + preco + ", " + quantidade + ");";
st.executeUpdate(sql);
System.out.println(sql);
break;
}
case 2: {
do {
try {
System.out.println("Digite o ID do produto para ser excluido do banco:");
int id = Integer.parseInt(leia.nextLine());
String sql = "delete from produto where id = " + id + ";";
st.executeUpdate(sql);
System.out.println(sql);
continua = false;
} catch (NumberFormatException e) {
System.out.println("Valor não numérico. Tente novamente!");
}
} while (continua);
break;
}
case 3: {
System.out.println("Cadastrando produto não vendido");
System.out.println("Digite o nome do produto:");
String nome = leia.nextLine();
System.out.println("Digite a descrição do produto:");
String descricao = leia.nextLine();
System.out.println("Digite o preço do produto:");
double preco = Double.parseDouble(leia.nextLine());
System.out.println("Dite a quantidade em estoque:");
int quantidade_estoque = Integer.parseInt(leia.nextLine());
Produto p = new Produto(0, nome, descricao, preco, quantidade_estoque);
menu.adicionar_produtos(p);
break;
}
case 4: {
menu.listar();
System.out.println("Digite o nome do produto para ser excluido:");
String nome = leia.nextLine();
menu.remover(nome);
menu.listar();
break;
}
case 5: {
System.out.println("Digite a descrição do produto:");
String descricao = leia.nextLine();
String sql = "Select nome, descricao from produto where descricao "
+ "ilike '%" + descricao + "%' order by descricao;";
ResultSet res = st.executeQuery(sql);
while (res.next()) {
String nome = res.getString("nome");
descricao = res.getString("descricao");
System.out.println(" Produto: \n Nome: " + nome + ", Descrição: " + descricao + ";");
}
break;
}
case 6: {
String sql = "select*from produto order by id;";
ResultSet res = st.executeQuery(sql);
while (res.next()) {
int id = res.getInt("id");
String nome = res.getString("nome");
String descricao = res.getString("descricao");
double preco = res.getDouble("preco");
int quantidade_estoque = res.getInt("quantidade_estoque");
Produto produto = new Produto(id, nome, descricao, preco, quantidade_estoque);
System.out.println(produto);
}
break;
}
case 7: {
menu.listar_ordem();
break;
}
case 8: {
do {
try {
System.out.println("Digite o id para cadastrar a venda:");
int id = Integer.parseInt(leia.nextLine());
String sql = "Update produto set quantidade_estoque = quantidade_estoque-1 where id=" + id + ";";
st.executeUpdate(sql);
continua = false;
} catch (NumberFormatException e) {
System.out.println("Valor não numérico. Tente novamente!");
}
} while (continua);
break;
}
case 9: {
for(int i=0; i<menu.lista.size(); i++){
menu.lista.get(i);
// menu.lista.get(i);
// String sql = "Insert into produto (nome, descricao, preco, quantidade_estoque)"
// + "values('"+menu.lista.getnome+"', '"+produto.getDescricao()+"', "
// +produto.getPreco()+","+produto.getQuantidade_estoque()+");";
// System.out.println(sql);
}
}
}
}
}
}
Produto
package rec1tlp1;
import java.util.Objects;
public class Produto implements Comparable<Produto> {
private int id;
private String nome;
private String descricao;
private double preco;
private int quantidade_estoque;
public Produto() {
}
public Produto(int id, String nome, String descricao, double preco, int quantidade_em_estoque) {
this.id = id;
this.nome = nome;
this.descricao = descricao;
this.preco = preco;
this.quantidade_estoque = quantidade_em_estoque;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade_estoque() {
return quantidade_estoque;
}
public void setQuantidade_estoque(int quantidade_estoque) {
this.quantidade_estoque = quantidade_estoque;
}
@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + this.id;
hash = 31 * hash + Objects.hashCode(this.nome);
hash = 31 * hash + Objects.hashCode(this.descricao);
hash = 31 * hash + (int) (Double.doubleToLongBits(this.preco) ^ (Double.doubleToLongBits(this.preco) >>> 32));
hash = 31 * hash + this.quantidade_estoque;
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Produto other = (Produto) obj;
if (this.id != other.id) {
return false;
}
if (Double.doubleToLongBits(this.preco) != Double.doubleToLongBits(other.preco)) {
return false;
}
if (this.quantidade_estoque != other.quantidade_estoque) {
return false;
}
if (!Objects.equals(this.nome, other.nome)) {
return false;
}
if (!Objects.equals(this.descricao, other.descricao)) {
return false;
}
return true;
}
@Override
public String toString() {
return "Produto (" + id
+ "), Nome: " + nome
+ ", Descrição:" + descricao
+ ", Preço:" + preco
+ ", Quantidade_em_estoque:" + quantidade_estoque + ';';
}
@Override
public int compareTo(Produto t) {
return this.nome.compareTo(t.getNome());
}
}
ARRAY
package rec1tlp1;
import java.util.ArrayList;
import java.util.Collections;
public class Lista_Produtos {
ArrayList<Produto> lista = new ArrayList<Produto>();
public Lista_Produtos() {
}
public void adicionar_produtos(Produto produto) {
lista.add(produto);
}
public void listar() {
String retorno = "";
for (Produto produto : lista) {
retorno += produto + "\n";
}
System.out.println(retorno);
}
public void listar_ordem() {
Collections.sort(this.lista);
String retorno = "";
for (Produto produto : lista) {
retorno += produto + "\n";
}
System.out.println(retorno);
}
public void limpar() {
lista.clear();
}
public void remover(String nome) {
for (int i = 0; i < lista.size(); i++) {
Produto produto = lista.get(i);
if (produto.getNome().equalsIgnoreCase(nome)) {
lista.remove(produto);
System.out.println("Produto Removido Com Sucesso");
} else {
System.out.println("Produto não encontrado");
}
}
}
// public void add_bd(){
// String sql= "";
// for(Produto produto: lista){
// sql = "Insert into produto (nome, descricao, preco, quantidade_estoque)"
// + "values('"+produto.getNome()+"', '"+produto.getDescricao()+"', "
// +produto.getPreco()+","+produto.getQuantidade_estoque()+");";
// System.out.println(sql);
// }
// };
}