O difícil da questão é que não importan o quanto a IBM, Oracle, etc. vendem APplication Servers, eles também vendem DB2 e escrevem na documentação que “você é um idiota se não colcoar sua lógica no nosso SGBD”.
Bom, acho que existe uma pequena confusão. A lógica, num modelo de camadas, não fica na apresentação nem no bd, fica na camada de negócios.
J2EE é exatamente sobre isso. Você é [seria, em teoria ao menos] capaz de mudar sua apresentação [maldito HTML, Swing, cadê vc?], seu servidor de aplicações [WebEspirro nunca mais! WebIlógico é a bala de prata!] ou de SGBD [o que? DB2? Nem se fosse 2000, essa porcaria nao serve, põe um SQL Servo aí! - br… péssimo exemplo… e sua lógica ficaria igual [mudar de Java para outra tecnologia éoutro papo] e deveria rodar perfeitamente. Por isto que tudo é padronizado. Quem já trabalhou acessando um SGBD diretamente com C/C++ tem noção da bosta que é quando cada um faz um padrão diferente…
Considere encapsulamento.
private int numeroSecreto
Vamos supor que número secreto tenha que ser entre 3 e 30, não mais, não menos. COmo eu garanto isso OO? Fàcil, ponho ele privado e faço a verificação no método. Bem, nosso número vai pro BD alguma hora. Se eu mexer nele através de StoredProcedures, estou mainipulando o estado, não o objeto. Isto pdoe detonar um modelo.
Ok, só vamos fazer alterações no BD por stored procedures, e vamos colocar nas stored procedures a mesma regra que no objeto. Ops, lógica idêntica duplicada em dois lugares, putz, não presta isso!
Esquece! Dexia tudo acessível mesmo, é responsabilidade do programador não alterar para valores proibidos. Mas… se é pra fazer assim, por que usar private? Usa public logo e o cara que se coce para manter o objeto válido!
Fora que se você fizer um mapeamento de heranças, pode acabar corrompendo todo o modelo porque você vai lidar comd ados, não com objetos. O cudiado tem que ser muito alto…
É claro que se você precisa de desempenho, pdoe abrir mão de algumas coisas. Se você rpecisa que determinados dados sejam pesuisados, manipulados, sei lá, você pode escrever uma SP com cuidado e correr o risco de acabar fazendo alguma besteira no caminho, em prol da velocidade. as vezes é necessário…
é para isto que existem camadas, povo.
[]s