- 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
En este blog voy dejando información que me suelo encuentro en Internet. Para poder tenerla a mano siempre, al igual que otra gente del palo.. Los temas están relacionados con informática, programación, desarrollo web y móvil.
2011-11-24
ORMLite Estupenda librería para trabajar con Base de Datos desde Android o Java
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
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-03
PHP Data Objects – PDO
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); |
1 | $db = new PDO('mysql:host=localhost;dbname=pruebas', 'root', ''); |
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)); |
1 | SELECT * FROM items WHERE id_item = '2' OR id_item = '4' |
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' |
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(); |
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(); |
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(); |
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.
2-.ezSQL
Librería bastante ligera y sencilla de usar. Soporta varios tipos de bases de datos.
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.
4-. Doctrine
Otra librería para ORM. Permite realizar las consulta mediante un lenguaje propio llamado DQL.
5-. Outlet
Otro motor para ORM. Basado en Hibernate.
6-. RedBeanPHP
Otro motor para ORM.
Video tutorial de RedBean ORM PHP muy simple pero en ingles
7-. CoughPHP
Otro motor para ORM.
8-. PhpObjectGenerator
Otro motor para ORM con un tool on-line para crear toda la base de datos y las class PHP.
9-. phpDataMapper
Otro motor para ORM para PHP5 Object-Oriented PHP5 Data Mapper ORM.
10-. dORM
Otro motor para ORM.
11-. PHP-ActiveRecord
Otro motor para ORM muy interesante y en actual desarrollo a la fecha pero requiere PHP 5.3
12-. ORMer
Otro motor para ORM.
13-. dbObjects
Otro motor para ORM con PHP5.
14-. PHP::Spod
Otro motor para ORM con PHP5.
15-. Hormon
Otro motor para ORM.
16-. Junction
Otro motor para ORM con PHP5 .
17-. DicaORM
Otro motor para ORM con PHP5<* y PDO requerido .
2008-12-09
ORM Doctrine, Propel, Porte, y PhpObjectGenerator
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
