GreyPompom / sistema_emprestimo_A3

Projeto de sistema de emprestimo, em JAVA-MVC com interfaces.
MIT License
2 stars 0 forks source link

Ajustar métodos INSERT nos arquivos DAO, para enviar nas queries apenas os valores sem id. #41

Open PoweredTable opened 3 months ago

PoweredTable commented 3 months ago

Todas as tabelas criadas utilizam a propriedade AUTO_INCREMENT, isso significa que a cada novo registro em uma tabela não há necessidade de especificar um ID.

Não necessariamente causará algum erro sempre que fizer um INSERT, porém se o ID já existir, ocorrerá um erro.

Com isso em mente, é possível observar alguns potenciais problemas nos seguintes métodos:

Ambos estão localizados nos arquivos DAO.

GreyPompom commented 3 months ago

Você diria que quando for fazer o insert de um novo dado na tabela, eu não preciso especificar o id? Na hora q desenvolvi esqueci que havia feito com AUTO_INCREMENT os ids.

Exemplo de erro seria, apago o dado id 7(maior id da tabela), ai quando eu for inserir um novo dado na tabela e pegar o maior id ele irá retornar 6 e somar 1, e quando isso for inserido como id 7 dará erro? seria isso?

PoweredTable commented 3 months ago

Boa tarde,

Com a propriedade do AUTO_INCREMENT não é necessário especificar o id.

Sobre o erro que você mencionou, de fato é um caso que talvez pudesse ocasionar um erro inesperado, isso pois no MySQL, sempre que você exclui uma linha de dados da tabela, o valor do auto increment não reseta/diminui.

Porém, se eu não me engano, no MySQL se você inserir manualmente uma linha de dados com um Id que não existe, mesmo que a coluna possua auto increment, não deve ocasionar um erro.

Resumindo, da forma que foi feito usando o método pegaMaiorId deve funcionar normalmente, porém é redundante ter um método que gera um Id único e uma propriedade no banco que faz a mesma coisa.

Att, Lucas da Silveira

GreyPompom commented 3 months ago

Boa tarde,

Vou ajustar então, ficou redundante mesmo, acredito que a solução seria apenas indicar os valores alternativos e deixar o banco inserir o maior id, exemplo insertAmigo preencher e enviar ao banco apenas os dados nome e telefone, já que o id será inserido pelo banco.

Obrigada pela dica, atenciosamente Emely.