À un niveau très élevé : Les ORM aident à réduire l'inadéquation de l'impédance Objet-Relationnel. Ils vous permettent de stocker et d'extraire des objets complets et vivants d'une base de données relationnelle sans avoir à faire vous-même beaucoup d'analyse/de sérialisation.
Qu'est-ce que cela m'apporte en tant que développeur ?
Pour commencer, il vous aide à rester SÈCHE. Soit votre schéma, soit vos classes de modèle font autorité et l'autre est généré automatiquement, ce qui réduit le nombre de bogues et la quantité de code passe-partout.
Il aide au marshaling. Les ORM gèrent généralement la mise en forme des valeurs des colonnes individuelles dans les types appropriés afin que vous n'ayez pas à les analyser/sérialiser vous-même. De plus, cela vous permet de récupérer des objets complets à partir de la base de données plutôt que de simples objets en ligne que vous devez envelopper vous-même.
En quoi mon code sera-t-il différent des instructions SELECT individuelles que j'utilise actuellement ?
Puisque vos requêtes renverront des objets plutôt que de simples lignes, vous pourrez accéder aux objets connexes en utilisant l'accès aux attributs plutôt que de créer une nouvelle requête. Vous pouvez généralement écrire directement du SQL lorsque vous en avez besoin, mais pour la plupart des opérations (CRUD), l'ORM simplifiera le code d'interaction avec les objets persistants.
Comment cela va-t-il contribuer à l'accès et à la sécurité de la base de données ?
En général, les ORM ont leur propre API pour construire des requêtes (par exemple, l'accès aux attributs) et sont donc moins vulnérables aux attaques par injection SQL ; cependant, ils vous permettent souvent d'injecter votre propre SQL dans les requêtes générées afin que vous puissiez faire des choses étranges si vous en avez besoin. Vous êtes responsable de l'assainissement de ce SQL injecté, mais si vous évitez d'utiliser de telles fonctionnalités, l'ORM devrait s'occuper automatiquement de l'assainissement des données utilisateur.
Comment découvre-t-il le schéma de la base de données et les informations d'identification de l'utilisateur ?
De nombreux ORM sont fournis avec des outils qui inspectent un schéma et construisent un ensemble de classes de modèles qui vous permettent d'interagir avec les objets de la base de données. Les informations d'identification de l'utilisateur [base de données] sont généralement stockées dans un fichier de paramètres.