Minha dúvida sobre fazer um CRUD, se possível faze-lo apenas com ArrayList, sem MySQL.
Comecei o meu CRUD mas estou com dificuldades de criar um novo Cliente, pois toda vez que crio um segundo Cliente, ele sobrepoem o Cliente anterior.
Toda vez que eu for cadastrar um novo Cliente, terei que fazer uma nova referência? Assim resolvendo esse problema, mas como são vários Clientes que o usuário poderá cadastrar, quero saber se tem como fazer de outro jeito sem ser esse :
->“mas como assim , sem ser esse?” ( Porque como vou criar 3 referências se o usuário quis criar apenas 3)
Então não é CRUD. E tu vai armazenar em um array? E não precisa ter persistência? Ou seja, desligou a máquina ou fechou o programa as informações irão se perder?
Contudo…
Cliente cliente1 = new Cliente();
cliente.setPessoa(pessoa1);
Cliente cliente2 = new Cliente();
cliente.setPessoa(pessoa2);
Cliente cliente3 = new Cliente();
cliente.setPessoa(pessoa);
Seria melhor se postasse como estão as classes Pessoa e Cliente.
public static void main(String[]args){
Scanner teclado = new Scanner(System.in);
List clientos = new ArrayList<>();
Pedido pedido = new Pedido();
int Escolha;
public class Pedido {
Scanner teclado = new Scanner(System.in);
Cliente Cliente = new Cliente();
ItemPedido item = new ItemPedido();
List listclientes;
List lispedido;
Cliente atualizar;
private int opcao;
private String nome;
public void inserirCliente(Cliente c){
System.out.println("Seu ID - "+indice);
c.setClienteID(indice);
System.out.println("Qual o seu nome: ");
c.setNome(teclado.next());
System.out.println("Qual o seu Email: ");
c.setEmail(teclado.next());
indice++;
listclientes.add(c);
Classe Cliente
Com metodos get e set apenas .
Tem de alguma forma , fazer esse procedimento da foto acima sem necessariamente fazer isso:
e sim é um cadastro simples , talvez nem crud é , mas apenas com arraylist(desligou acabou, coisa de iniciante).
System.out.println("Seu ID - "+indice);
c.setClienteID(indice);
System.out.println("Qual o seu nome: ");
c.setNome(teclado.next());
System.out.println("Qual o seu Email: ");
c.setEmail(teclado.next());
indice++;
listclientes.add(c);
}
mas sem sobrepor os dados dos clientes anteriores.
Jothar você é um gênio irmão!! Amigo só faltou “matar o mal pela raiz”,
o meu problema e na saída dos dados(que faltou na imagem saída que você mandou), eu usando sua saída como exemplo iria em Salvar cadastro, mas (no meu) ele sempre sobrepoem o cadastro anterior, que na suas imagens eu não pude ver se daria também. Consegue confirmar para mim ? Creio eu que o seu também sobrepoem os dados do cadastro anterior.
Quero eu uma lista(de mais de um cadastro, no mesmo estilo que você me mostrou na imagem)
Se você reparar, o método lerDados() guarda cada uma das informações em variáveis globais correspondentes. Se são globais, qualquer método pode operar com elas. Quando eu chamo o salvarCliente(Cliente cliente), esse método recebe o método o retorno do método retornarCliente() que instancia um novo objeto cliente e coloca as informações das variáveis globais no atributos. Logo, toda vez que selecionar a opção 2 (salvar) instanciará um novo objeto cliente e então serão objetos diferentes. Logo, não haverá sobreposição.
No caso eu fiz separado, mas você pode salvar logo depois de ler. No meu código, se o cara esquecer de selecionar a opção 2 depois de ler os dados de um cliente, esse cliente será perdido (não será adicionado à lista).