- Patrón ActiveRecord
-
Patrón ActiveRecord
En ingeniería informática, el patrón active record es un patrón de diseño que se suele dar en las aplicaciones empresariales.
Active Record es un enfoque al problema de acceder a los datos de una base de datos. Una fila en la tabla de la base de datos (o vista) se envuelve en una clase, de manera que se asocian filas únicas de la base de datos con objetos del lenguaje de programación usado. Cuando se crea uno de estos objetos, se añade una fila a la tabla de la base de datos. Cuando se modifican los atributos del objeto, se actualiza la fila de la base de datos. La clase envoltorio implementa métodos de acceso para cada columna de la tabla o vista.
Una de las implementaciones más populares se puede encontrar en Ruby on Rails. Por ejemplo, si existe una tabla llamada
partes
con las columnasid
(clave primaria),nombre
(de tipo varchar ) yprecio
(de tipo monetario o de doble precisión) y existe la claseParte
, el siguiente códigoa = Parte.new a.nombre = "Parte de ejemplo" a.precio = 123.45 a.save
creará una nueva fila en la base de datos con los valores proporcionados, que viene a ser más o menos equivalente a la siguiente sentencia en SQL:
INSERT INTO partes (nombre, precio) VALUES ('Parte de ejemplo', 123.45);
De la misma manera, la clase se puede emplear para consultar la base de datos:
b = Parte.find(:first,:conditions => ['nombre = ?', nombrecacharro])
creará un solo objeto a partir de la primera fila en la base de datos cuya columna
nombre
sea igual a los contenidos de la variablenombrecacharro
, y viene a ser equivalente a la sentencia:SELECT * FROM partes WHERE nombre = ? LIMIT 1;
Donde el parámetro posicional
?
se reempleaza pornombrecacharro
.Al aplicar "save" al objeto guardado, lo que Active Record realiza es ver si el objeto existe para modificarlo, de lo contrario agrega los datos a la base de datos
Enlaces externos
- Castle Project Active Record es una implementación para la plataforma.NET (Microsoft o Mono)
- ActiveRecord en Ruby on Rails - Sección del 'wiki' de Ruby on Rails sobre ActiveRecord
Categoría: Patrones de diseño
Wikimedia foundation. 2010.