Ae gente eu to com umas dúvidas aqui.
Bom primeiro eu queria saber mais sobre os JDBC mas não achei muita coisa. Se tiverem material me passem.
Bom minha dúvida principal é quanto aos PreparedStatement, BatchStatement e o Statement. Desculpem qualquer erro de nome…
Bom sei que o Statement é rodado 1 por 1, pode acontecer se não for tratado corretamente de ter um sql injection pois para criar esta query vc usaria concatenação de string’s, é um metodo para inserir query’s uma a uma. Sendo este metodo mais lento na inserção do que os outros 2.
Já o PreparedStatement ele pré-processa a query o que isso significa ?
Que ele irá processar o custo da query, montar ela de uma forma mais efetiva e repassa para o banco algo já mastigado só com os valores e o banco não necessita fazer um peso para ver qual o caminho melhor para processar minha query, Mas nesse caso a validação da query fica a encargo do driver também ? Se for isso então isso tudo quem deve ser responsável é o Driver e não o banco ?
E o BatchStatement quando eu rodo várias query’s mas não do o execute, ele esta guardado tudo no Driver para depois ser passado tudo para o banco de dados como uma grande sequencia de query’s a serem executadas ?
E quanto ao Driver em questão. Ele irá somente fazer o papel de criar a conexão e repassar as query’s para o banco, e o banco em questão irá tratar de otimiza-las e tudo e responder ao driver, ou o driver faz alguma otimização em minhas query’s e repassa ao banco de dados algo já pré-processado, e em cima disso o banco de dados irá fazer a validação e quebrar em várias sub-query’s e executa-las ?
São várias dúvidas…
Me corrigam se tiver algo errado alem do portugues plz.