Mostrando entradas con la etiqueta ORM. Mostrar todas las entradas
Mostrando entradas con la etiqueta ORM. Mostrar todas las entradas

2011-11-24

ORMLite Estupenda librería para trabajar con Base de Datos desde Android o Java


ORM Lite ligero orm paquete java
Object Relational Lite Mapping (ORM Lite) proporciona algunas funcionalidades de peso ligero para la persistencia de objetos Java a bases de datos SQL, evitando la complejidad y la sobrecarga de más paquetes ORM estándar.

Para más información, consulte la página de ORMLite .

ORMLite ofrece las siguientes características:
  • Configuración de sus clases por simple adición de anotaciones Java.
  • Potente base de datos abstractos acceso a objetos (DAO) clases.
  • Generador de consultas flexibles para construir fácilmente consultas simples y complejas.
  • Soporta MySQL, PostgreSQL, Microsoft SQL Server, H2, Derby, HSQLDB, y SQLite y se puede extender a otras bases de datos con relativa facilidad.
  • Apoyo provisional para DB2, Oracle, ODBC, y Netezza. Contacta con el autor si el tipo de base de datos no es compatible.
  • Maneja "compilado" Sentencias de SQL para las tareas de consulta repetitiva.
  • Compatible con "extranjeros" los objetos con el campo de la clase es el objeto, sino un identificador almacenado en la tabla de base de datos.
  • Soporte básico para las transacciones de base de datos.
  • Auto genera SQL para crear y eliminar tablas de bases de datos.
  • Primavera de la configuración a través de DOAS y configuraciones de clases.
  • Soporte para la configuración de tablas y campos sin anotaciones.
  • Admite llamadas nativas de Android API de base de datos SQLite

2011-07-31

Ya esta disponible la nueva version 2.0 de RedBean un mini ORM para PHP 5.2 y 5.3


Ya esta disponible para la descarga la nueva versión de RedBean, que es un mini motor ORM para PHP que solo pesa 100Kb en su nuevo versión y es compatible con PHP 5.2 y 5.3 y todas las clases están empaquetadas en un solo archivo. La instalación es muy simple solo tenes que poner esto:

<?php require('rb.php'); ?>

Mas información en redbeanphp.com
Manual de RedBean

2010-11-04

Integra un ORM con Javascript y WebSQL

Inspirado en el modelo de Django, ORM-HTML5 nace para ayudarnos con la tarea de trabajar con estructura de datos almacenadas en la base de datos que HTML5 nos integra en el navegador, concretamente con WebSQL.

ORM (Mapeo objeto-relacional)

La técnica de programación que usamos para mapear los datos de una base de datos a objetos que podemos usar en nuestros scripts es la que conocemos como ORM (Object-Relational mapping).
Esta técnica, muy usada en la mayoría de frameworks de los diferentes lenguajes de programación ha permitido que la tarea de trabajar con objetos relacionados con la base de datos se simplifique sustancialmente.

ORM-HTML5

La nueva versión de HTML dispone de un apartado dedicado al almacenamiento en local, para ello usará un sistema basado generalmente en SQLite, que nos permitirá alojar una serie de datos que podremos usar en nuestros scripts sin necesidad de interactuar con el servidor, necesariamente.
ORM-HTML5, es una implementación más, desarrollada por JM Robles,  y que nos permite disfrutar de esta técnica en nuestras páginas web.

Instalación

Como cualquier otra librería javascript bastará con cargar el fichero orm.js desde nuestra página.
<script language="JavaScript" src="orm.js"></script>

Definiendo el modelo

<script language="JavaScript">
   function Client(db){
        this.base = ModelBase;
        this.base("client");         // Name of table
               // Specifies the fields:
               //             name:       string not null
               //             surname:    string
               //             age:        integer
        this.fields = ["snName", "sSurname", "iAge"];
               // Preload objects in table
        this.predata = [   {id:1, name: 'John' , surname: 'Smith', age: 20 },
                           {id:2, name: 'Ana' , surname: 'Castillo', age: null} ];
        // Initialiaze
        this.init(db);
    }
    // Create DB Manager
    dbm = new DBM('ERP');
    // Register your models
    dbm.register(['Client']);
</script>
El modelo define la estructura de tablas que se crearán en la base de datos al aplicar el método  DBM.register().

Usarlo

<script language="JavaScript">
 var c = new Client(dbm);
 c.name = 'David';
 c.surname = 'Lohan';
 c.age = '30';
 c.save(function (result) { if (result) alert('save ok'); });
</script>
De esta forma, estaremos cargando datos en la base de datos a la vez de disponer del objeto Client del que podremos disponer en nuestro código.

Alternativas a ORM-HTML5

2010-09-14

Dibi es una libreria para poder abstraerce de la base de datos.


Dibi es una libreria para poder abstraerce de la base de datos.
Link a la librer DIBI


2010-09-03

PHP Data Objects – PDO

PDO es una interface de acceso a datos que nos permite, mediante varios drivers, conectarnos a diferentes bases de datos. Olvídate de esto, esto, esto e incluso de esto otro, ahora solo debes preocuparte por PDO. Esta librería escrita en C viene activada por defecto desde PHP 5.1 por lo cual la podrás utilizar en la mayoría de los servidores que actualmente soportan PHP5.

La conexión

Para todos los ejemplos utilizaré MySQL, pero también podria utilizar cualquier otra de las bases de datos soportadas adaptando un poco el código que sigue:
1
$db = new PDO('driver:host=servidor;dbname=bd', user, pass);
Y el ejemplo práctico:
1
$db = new PDO('mysql:host=localhost;dbname=pruebas', 'root', '');
Ahora en $db tenemos una instancia de PDO_MySQL

Primera consulta

Para la primer consulta haremos uso de prepare, execute y fetch.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require 'conexion.php';
 
//Nos conectamos
$db = new PDO('mysql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
 
//Preparamos la consulta para dejarla lista para su ejecución
$consulta = $db->prepare('SELECT * FROM items');
 
//Ejecutamos la consulta
$consulta->execute();
 
//Recorremos el set de resultados mostrando la información
while($fila = $consulta->fetch())
{
 echo $fila[0] . '  ' . $fila[1] . '<br />';
}
 
//Cerramos la conexión a la vez que destruimos nuestra instancia de PDO
$db = null;

Como verás no es nada complicado y es muy similar a lo que nos acostumbramos a hacer con las clásicas funciones mysql_.
Con las funciones MySQL también debíamos validar estrictamente los parámetros de entrada para evitar inyecciones SQL. En este caso, PDO lo hará por nosotros siempre y cuando utilicemos alguna de las varias formas que nos provee para realizar consultas parametrizadas. Este es un ejemplo:
1
2
3
4
5
//Preparamos la consulta marcando donde irán los parametros con ?
$consulta = $db->prepare('SELECT * FROM items WHERE id_item = ? OR id_item = ?');
 
//Ejecutamos la consulta incluyendo los parámetros en el mismo orden en el que deben incluirse
$consulta->execute(array(2, 4));
El ejemplo anterior generará una consulta de la siguiente manera:
1
SELECT * FROM items WHERE id_item = '2' OR id_item = '4'
Otra manera de hacer lo mismo:
1
2
3
4
5
6
7
8
9
10
$id = 6;
 
//Esta vez utilizamos un nombre-clave para cada parámetro
$consulta = $db->prepare('SELECT * FROM items WHERE id_item = :id');
 
//Con dicho nombre-clave, agregamos el valor del parámetro
$consulta->bindParam(':id', $id);
 
//Y ejecutamos la consulta
$consulta->execute();
1
SELECT * FROM items WHERE id_item = '6'
Ahora bien, si no confían, intenten inyectar SQL concatenando alguna sentencia en la variable $id y verán los resultados ;-)

Altas, Bajas y Modificaciones

El mecanismo sigue siendo el mismo que en las consultas anteriores, preparar la consulta, agregar los parámetros y ejecutar.
alta
1
2
3
4
5
6
$item = $_POST['item'];
 
$inserta = $db->prepare('INSERT INTO items (item) VALUES (:item)');
$inserta->bindParam(':item', $item);
 
$inserta->execute();
baja
1
2
3
4
5
6
$id = $_GET['id'];
 
$borra = $db->prepare('DELETE FROM items WHERE id_item = :id');
$borra->bindParam(':id', $id);
 
$borra->execute();
modificación
1
2
3
4
5
6
7
8
$item = $_POST['item'];
$id = $_POST['id'];
 
$actualiza = $db->prepare('UPDATE items SET item = :item WHERE id_item = :id');
$actualiza->bindParam(':item', $item);
$actualiza->bindParam(':id', $id);
 
$actualiza->execute();
Y esto es todo por el momento, solo un primer acercamiento a PDO. Podés bajarte todos estos ejemplos y varios mas desde aquí. Para que funcionen debes contar con un servidor que soporte PHP5 con las librerías PDO_MySQL instaladas, debes crear una base de datos, ejecutar el fichero items.sql y editar el archivo conexion.php con los datos que correspondan.

2009-12-06

Lista de 16 librerías para manejar bases de datos en PHP

Vamos con una pequeña recopilación de librerías para manejar bases de datos en PHP.

1-. ADOdb

Esta librería nos permite escribir aplicaciones portables sin necesidad de reescribir cada llamada a la base de datos. Soporta una gran cantidad de bases de datos distintas.

Página de ADOdb.

2-.ezSQL

Librería bastante ligera y sencilla de usar. Soporta varios tipos de bases de datos.

Página de ezSQL.

3-. Propel

Interesante librería para ORM (Object Relational Maping). Facilita el desarrollo gracias a la capa que transforma el manejo de la BBDD mediante objetos, con los que podemos realizar tareas como insertar, borrar, recuperar y modificar datos.

Página de Propel.

4-. Doctrine

Otra librería para ORM. Permite realizar las consulta mediante un lenguaje propio llamado DQL.

Página de Doctrine.

5-. Outlet

Otro motor para ORM. Basado en Hibernate.

Página de Outlet.

6-. RedBeanPHP

Otro motor para ORM.

Video tutorial de RedBean ORM PHP muy simple pero en ingles



Página de RedBeanPHP.

7-. CoughPHP

Otro motor para ORM.

Página de CoughPHP.

8-. PhpObjectGenerator

Otro motor para ORM con un tool on-line para crear toda la base de datos y las class PHP.

Página de PHPObjectGenerator.

9-. phpDataMapper

Otro motor para ORM para PHP5 Object-Oriented PHP5 Data Mapper ORM.

Página de phpDataMapper.

10-. dORM

Otro motor para ORM.

Página de dORM.

11-. PHP-ActiveRecord

Otro motor para ORM muy interesante y en actual desarrollo a la fecha pero requiere PHP 5.3

Página de php-activerecord.

12-. ORMer

Otro motor para ORM.

Página de ORMer.

13-. dbObjects

Otro motor para ORM con PHP5.

Página de dbObjects.

14-. PHP::Spod

Otro motor para ORM con PHP5.

Página de PHP::Spod.

15-. Hormon

Otro motor para ORM.

Página de Hormon.

16-. Junction

Otro motor para ORM con PHP5 .

Página de Junction.

17-. DicaORM

Otro motor para ORM con PHP5<* y PDO requerido .

Página de DicaORM.

2008-12-09

ORM Doctrine, Propel, Porte, y PhpObjectGenerator

Estos son algunos de los ORM para PHP. Yo trabaje con phpObjectGenerator es muy simple de instalar y de entender.

El que pinta muy interesante para el futuro es Doctrine se inspiraron en Hibernates. Si alguien ya trabajo con el este ultimo; estaría bueno que comente un poco y ponga algunos ejemplos de cómo utilizarlo.

Links:
http://www.doctrine-project.org/
http://propel.phpdb.org/
http://porte.adaltas.com/
http://www.phpobjectgenerator.com