Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Blog / ¿Qué es un ORM?

¿Qué es un ORM?

Luis del Valle Hernández

Mapeo objeto-relacional

Hoy hablamos del Mapeo Objeto-Relacional o como se conocen comúnmente, ORM (del inglés Object Relational Mapping). Algunos de vosotros ya sabréis que son pero, para aquellos que no los conozcan, un ORM te permite convertir los datos de tus objectos en un formato correcto para poder guardar la información en una base de datos (mapeo) creándose una base de datos virtual donde los datos que se encuentran en nuestra aplicación, quedan vinculados a la base de datos (persistencia).

Si alguna vez has programado alguna aplicación que se conecta a una base de datos, habrás podido comprobar lo laborioso que es transformar toda la información que recibes de la base datos, principalmente en tablas, en los objetos de tu aplicación y viceversa. A ésto se le denomina mapeo. Utilizando un ORM este mapeo será automático, es más, será independiente de la base de datos que estés utilizando en ese momento pudiendo cambiar de motor de base de datos según tus necesidades.Veamos un ejemplo. Supongamos que tenemos una tabla de clientes. En nuestra aplicación queremos hacer las funciones básicas sobre base de datos CRUD (del inglés Create, Read, Update and Delete) Crear, Obtener, Actualizar y Borrar. Cada operación corresponde con una sentencia SQL.

  • Creear: INSERT
  • Obtener: SELECT
  • Actualizar: UPDATE
  • Borrar: DELETE

Si queremos insertar un cliente nuevo y no utilizamos un ORM, el código quedaría de la siguiente manera si utilizamos C#:

String query = "INSERT INTO clientes (id,nombre,email,pais) VALUES (@id, @nombre, @email, @pais)";

command.Parameters.AddWithValue("@id","1")
command.Parameters.AddWithValue("@nombre","nombre")
command.Parameters.AddWithValue("@email","email")
command.Parameters.AddWithValue("@pais","pais")

command.ExecuteNonQuery();

En cambio si utilizamos un ORM, el código se puede reducir de la siguiente manera:

var cliente = new Cliente();
cliente.Id = "1";
cliente.Nombre = "nombre";
cliente.Email = "email";
cliente.Pais = "pais";
session.Save(customer);

Como podéis comprobar se ha reducido considerablemente el código. Pero lo más importante de todo, bajo mi punto de vista, es que, imaginaros que ahora modificamos la tabla de nuestra base de datos y añadimos un campo más como por ejemplo el apellido de nuestro cliente. En los dos casos, tendríamos que añadir a nuestra clase Cliente la propiedad correspondiente al apellido pero, si no utilizas un ORM te tocará revisarte todas las sentencias INSERT, SELECT y UPDATE para introducir dicho campo en cada una de ellas. En cambio si utilizas un ORM , lo único que tendrás que hacer será añadir la propiedad a la clase correspondiente. La sentencia save seguirá siendo la misma, el ORM  se encargará de modificar los INSERT, SELECT y UPDATE por ti. Esto se cumple hasta cierto punto. Hay algún ORM como MyBatis, que utiliza un híbrido entre los dos mundos. En MyBatis, las sentencias SQL están escritas en archivos XML. Esto implica que si modificas la base de datos, también tendrás que modificar las sentencias del XML correspondiente.

Además de lo que hemos visto hasta el momento, gracias a los ORM nos abstraemos del motor de base de datos que estamos utilizando es decir, si en algún momento queremos cambiar de base de datos, nos resultará sumamente sencillo. En algunos casos con solo cambiar un par de líneas de código, estaremos cambiando de motor de base de datos.
Existen varios ORM en el mercado. Todo dependerá del lenguaje de programación que estemos utilizando y de nuestras necesidades. A continuación podemos ver los ORM para algunos lenguajes de programación:

  • Hibernate (Java)
  • MyBatis (Java)
  • Ebean (Java)
  • Entity Famework (.NET)
  • NHibernate (.NET)
  • MyBatis.NET (.NET)
  • Doctrine (PHP)
  • Propel (PHP)
  • Rocks (PHP)
  • Torpor (PHP)

Si en algún momento desarrolláis alguna aplicación con acceso a base de datos, no dudéis en utilizar un ORM, os simplificará el trabajo enormemente.

home assistant 2026.7

Automatizaciones Home Assistant 2026.7: por fin hablan en humano

¿Cuántas veces te has sentado delante del ordenador para hacer una triste automatización y has acabado queriendo tirar el teclado por la ventana? Eso … [+ info...]

comparativa home assistant y homey

Comparativa Home Assistant y Homey: qué sistema domótico comprar

Comparativa Home Assistant y Homey: si estás pensando en montar una casa inteligente de verdad, tarde o temprano te vas a encontrar con esta duda. ¿Me … [+ info...]

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.