Ir ao conteúdo
  • Cadastre-se

meliodas90

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

Reputação

1
  1. Pessoal, estou com uma dúvida em relação a instância em python. Estava praticando aqui os conceitos de POO e criei um menu de cadastro, porém, na classe UsuarioView quando o usuário escolhe a opção 3 o programa retorna pro menu e os dados deveriam ser perdidos porque ao fazer menu = Menu() eu estou criando uma nova instância do objeto. Mas mesmo assim os valores continuam lá e não foi perdido nada. Alguém pode me explicar porque os valores não some, já que fiz uma nova instância do menu. Grato! from model.repositorios.Repositorio import RepositorioUsuario from model.classes.Pessoa_Usuario import Usuario class Menu: def menu(self): while(True): print('[1] - Menu Usuário') escolha = int(input('Escolha um menu: ')) if(escolha == 1): viewUsuario = UsuarioView() viewUsuario.viewUsuario() else: print('Valor incorreto!') voltar = int(input('[0] - Para voltar ao menu')) while(voltar != 0): print('Valor inválido!') voltar = int(input('[0] - Para voltar')) class UsuarioView: repositorioUsuario = RepositorioUsuario() def viewUsuario(self): while(True): print('[1] - Cadastrar Usuário') print('[2] - Listar Usuários') print('[3] - Voltar para o Menu') escolha = int(input('Escolha uma opção: ')) if(escolha == 1): codigo = int(input('Código: ')) nome = str(input("Nome: ")) idade = int(input('Idade: ')) cpf = str(input('CPF: ')) sexo = str(input('Sexo: ')) email = str(input('Email: ')) senha = str(input('Senha: ')) usuario = Usuario(codigo, nome, idade, cpf, sexo, email, senha) self.repositorioUsuario.salvarUsuario(usuario) elif(escolha == 2): self.repositorioUsuario.listarUsuarios() elif(escolha == 3): menu = Menu() menu.menu() else: print('Valor incorreto!') voltar = int(input('[0] - Para voltar')) while(voltar != 0): print('Valor incorreto!') voltar = int(input('[0] - Para voltar'))
  2. Olá pessoa, estou começando a sair do java básico e indo para um pouquinho do avançado. Estou com dificuldades em excluir um objeto de banco de dados. Consigo salvar o objeto sem problemas, porém não consigo exclui-lo do banco. Aparece a seguinte informação no final da execução: INFO: HHH000114: Handling transient entity in delete processing. Podem me dar um alerta sobre o possível erro ? grato. hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Configurações de Conexão com o Banco de Dados --> <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/locadora?serverTimezone=UTC</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- Pool de Conexões --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- Gerenciamento do Contexto das Sessões --> <property name="current_session_context_class">thread</property> <!-- Cache de Segundo Nível --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <!-- Mostra as SQLs Geradas --> <property name="show_sql">true</property> <!-- Cria as tabelas do banco de dados <property name="hbm2ddl.auto">create</property>--> <!-- Compara a entidade com o que existe no banco de dados validate/update <property name="hbm2ddl.auto">update</property>--> </session-factory> </hibernate-configuration> Repositório public class RepositorioUsuario extends GenericRepository<Usuario> implements IUsuarioRepositorio { public void salvar(Usuario usuario) { Session sessao = HibernateUtil.getSessionFactory().openSession(); Transaction transacao = null; try { transacao = sessao.beginTransaction(); sessao.save(usuario); System.out.println("Usuário salvo com sucesso"); transacao.commit(); } catch (RuntimeException e) { System.out.println("GerericRepository.salvar" + e.toString()); // TODO: handle exception if (transacao != null) transacao.rollback(); throw e; } finally { sessao.close(); } } public boolean remover(Usuario usuario) { Session sessao = HibernateUtil.getSessionFactory().openSession(); Transaction transacao = null; try { transacao = sessao.beginTransaction(); sessao.delete(usuario); transacao.commit(); } catch (RuntimeException e) { System.out.println(e.toString()); // TODO: handle exception if (transacao != null) transacao.rollback(); throw e; } finally { sessao.close(); } return true; } } Usuário @Entity public class Usuario extends Pessoa { private int codigo; public Usuario(String nome, String cpf, String telefone, int codigo) { super(nome, cpf, telefone); this.codigo = codigo; } public Usuario() { } @Override public boolean equals(Object obj) { Usuario usuario = (Usuario) obj; if (usuario.getCpf().equals(this.getCpf())) { return true; } return false; } @Override public String toString() { return "Usuario" + "Nome: " + getNome() + "CPF: " + getCpf() + "Telefone: " + getTelefone(); } Teste public static void main(String[] args) { Usuario usuario = new Usuario("José Maria", "12026161458", "998771084", 2); RepositorioUsuario repositorio = new RepositorioUsuario(); //repositorio.salvar(usuario); repositorio.remover(usuario); }
  3. Olá pessoal, meu código a seguir não consegue executar a opção 2 "MOSTRAR PRODUTO POR CÓDIGO" no método main. Ele não mostra o produto a partir do código do cliente. Porém, se eu criar a variável "codigoCliente" na classe Produto, e adicionar ela no ArrayList de repositorioPordutos, ele executa normalmente. Não faz sentido o Produto ter o "codigoCliente" isso tem que estar explicito na classe Cliente. Gostaria de saber porque ele não está executando na maneira que fiz abaixo. Grato se alguém puder ajudar! CLASSE CLIENTE import java.util.ArrayList; import java.util.List; public class Cliente { private int nome; private int idade; private int codigoCliente; public List<Cliente> codigoClientes = new ArrayList<>(); public int getNome() { return nome; } public void setNome(int nome) { this.nome = nome; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public int getCodigoCliente() { return codigoCliente; } public void setCodigoCliente(int codigoCliente) { this.codigoCliente = codigoCliente; } } CLASSE PRODUTO import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Produto { Scanner entrada = new Scanner(System.in); List<Produto> repositorioProduto = new ArrayList(); Cliente cliente = new Cliente(); private String nome; private double preco; public void compra() { Produto produtos = new Produto(); Cliente cliente = new Cliente(); System.out.println("NOME DO PRODUTO: "); produtos.nome = entrada.next(); System.out.println("PREÇO: "); produtos.preco = entrada.nextDouble(); System.out.println("CÓDIGO DO CLIENTE: "); cliente.setCodigoCliente(entrada.nextInt()); repositorioProduto.add(produtos); cliente.codigoClientes.add(cliente); } public void mostrarPorCodigo() { int codigo; boolean achou = false; System.out.println("INFORME O CÓDIGO DO CLIENTE: "); codigo = entrada.nextInt(); for (int i = 0; i < cliente.codigoClientes.size(); i++) { if (codigo == cliente.codigoClientes.get(i).getCodigoCliente()) { System.out.println("ESSE USUÁRIO COMPROU: "+ repositorioProduto.get(i).nome); achou = true; } } if(!achou) { System.out.println("---------------------"); System.out.println("CÓDIGO NÃO ENCONTRADO"); System.out.println("---------------------"); } } } CLASSE MAIN import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); Produto produto = new Produto(); int opcao; int resp; do { System.out.println("1 - CADASTRAR"); System.out.println("2 - MOSTRAR PRODUTO POR CÓDIGO"); opcao = entrada.nextInt(); switch(opcao) { case 1: produto.compra(); break; case 2: produto.mostrarPorCodigo(); break; } System.out.println("DIGITE [0] PARA CONTINUAR "); resp = entrada.nextInt(); }while(resp == 0); } }
  4. Estou praticando algoritmos no visualg e não entendi o contexto dessa questão. Se puderem me explicar como faz, eu agradeço! Na loja Mundo das Tintas, para facilitar a vida dos clientes e trazer mais autonomia, o gerente solicitou que o desenvolvimento de um programa que permita ao cliente calcular a quantidade de latas de tinta a ser comprada a partir da informação da área, em metros quadrados, a ser pintada. As latas de tinta têm uma cobertura de 1 um litro para cada 3 metros quadrados e são vendidas em galões de 18 litros, que custam R$79 cada. Solicite e exiba as informações adequadas ao cliente
  5. Estou estudando a linguagem C, porém, ao executar essa calculadora aparece um erro na tela. Alguém pode me ajudar a solucionar ? sou novo no ramo da programação. #include <stdio.h> #include <stdlib.h> int main() { int operacao,n1,n2,resultado; printf("Digite um numero: "); scanf("%i", &n1); printf("Digite outro numero: "); scanf("%i", &n2); printf("Digite [1] para somar\n"); printf("Digite [2] para multiplicar\n"); printf("Digite [3] para dividir\n"); printf("Digite [4] para subtrair\n"); scanf("%i",operacao); switch(operacao) { case 1: resultado = n1 + n2; printf("%i", resultado); break; case 2: resultado = n1 * n2; printf("%i", resultado); break; case 3: resultado = n1 / n2; printf("%i", resultado); break; case 4: resultado = n1 - n2; printf("%i", resultado); break; } return 0; }
  6. Obrigado pela ajuda amigo! Consegui fazer os outros 2, mais o primeiro, eu estou um pouco enrolado...
  7. Poderiam me mostrar o programa feito em ''C'' desses 3 problemas, pois só faltam esses 3 pra encerrar tudo... Agradeço a quem puder ajudar! 1- programa para calcular a soma entre todos os números compreendidos entre dois números lidos no teclado 2- programa para determinar o maior número entre dois lidos no teclado 3-programa que leia dois números, troque os valores e exiba na tela
  8. Opa, iria agradecer se você poder mostrar. Também estou começando a aprender linguagem em ''C'', se poder me mostrar o resultados das questões em C eu agradeço de coração!
  9. Opa, a questão 2 eu consegui fazer, as outras 2 não, não entendi bem... Só falta as 2 pra eu terminar o exercício!
  10. 1- programa para calcular a soma entre todos os números compreendidos entre dois números lidos no teclado 2- programa para determinar o maior número entre dois lidos no teclado 3-programa que leia dois números, troque os valores e exiba na tela

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...