Su función es ocultar las tablas de una base de datos relacional tras la apariencia de objetos, un sistema de acceso a los datos más natural para los programadores. Es como decir "esta clase mapea esta tabla, y los objetos de esta clase mapean las filas de esa tabla". Una de las mejoras más evidentes es ocultar las sentencias SQL del código de la aplicación.
Esto permite realizar cosas como:
JazzLegend.find_by_name('Miles Davis').albums
var katzFamily = Person.filter("lastName = ?","Katz"); katzFamily.each(function(person) { console.log(person.firstName); });
var mail = Mail.retrieve(msgid); if (!mail) mail = Mail.create({ message_id: msgid, message: body }); mail.last_read((new Date).toUTCString()); mail.drop();
- jStorm anteriormente conocido como GearsORM.
- Persevere persistent object framework.
- class-dbi.js de Simon Cozens.
- JazzRecord.
Buena idea, pero no veo la utilidad de esto.
ResponderEliminarUn saludo
Usar un ORM oculta los detalles de la implementación que hay debajo. Como toda abstracción facilita la escritura y lectura del código y la modificación posterior.
ResponderEliminarSi no usas SQL (que es de lo que se trata), facilitas cambiar de base de datos a mitad de proyecto sin reescribir nada. Puesto que el SQL depende de cada base de datos, es fácil tener que acabar adaptando las consultas cada vez.
Además, usarías una sintaxis más propia de objetos que debería ser más común con el resto del código. Es mejor escribir
db.getPersonas()[0].nombre
en lugar de
rs= db.query('select nombre from persona'); nombre= rs.getField('nombre');