Bitacora 5 Lenguaje Avanzado LL

BITACORA II Cristhian Eduardo Paredes Pérez Uniremington Lenguaje de programación avanzado ll HIBERNATE Hibernate es

Views 41 Downloads 0 File size 772KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

BITACORA II Cristhian Eduardo Paredes Pérez

Uniremington

Lenguaje de programación avanzado ll HIBERNATE Hibernate es una herramienta de mapeo objeto-relacional (ORM) bajo licencia GNU LGPL para Java, que facilita el mapeo de atributos en una base de datos tradicional, y el modelo de objetos de un aplicación mediante archivos declarativos o anotaciones en los beans de las entidades que permiten establecer estas relaciones. Todo lo dicho, que suena a vendedor de seguros, se resume en que agiliza la relación entre la aplicación y nuestra base de datos SQL, de un modo que optimiza nuestro flujo de trabajo evitando caer en código repetitivo.

COMO FUNCIONA HIBERNATE En la mayoría de los programas actuales existen dos modelos de datos que coexisten: el usado en la memoria de la computadora (orientación a objetos), y el usado en las bases de datos (modelo relacional). Hibernate busca solucionar el problema de la diferencia entre ambos modelos. Para lograr esto, nos permite detallar cómo es su modelo de datos, qué relaciones existen y qué forma tienen mediante un documento XML, o mediante anotaciones donde corresponde un atributo de una clase, con una columna de una tabla. En la actualidad es una tarea simple, pues existen herramientas que lo hacen por nosotros.

ORM Object-Relational mapping o mapeo de objetos-relacional, es un modelo de programación que consiste en la transformación de las tablas de una base de datos, en una serie de entidades que simplifique las tareas básicas de acceso a los datos para programador. Aunque el lenguaje SQL se usa para acceder a muchas de las bases de datos existentes, existen múltiples varianzas en las funciones que los distintos SGBD han usado. Un ejemplo muy sencillo sería delimitar el número de registros de una consulta: SELECT TOP 10 * FROM usuario //SqLServer SELECT * FROM usuarios LIMIT 10 // MySQL SELECT * FROM usuarios WHERE rownum Hibernate, iBatis, Ebeans entre otros. .NET -> Entity Framework, nHibernate, entre otros. PHP -> Doctrine, Propel, ROcks, Torpor etc.

Una clave primaria es un campo (o varios) que identifica 1 solo registro (fila) en una tabla. Para un valor del campo clave existe solamente 1 registro. Los valores no se repiten ni pueden ser nulos. Veamos un ejemplo, si tenemos una tabla con datos de personas, el número de documento puede establecerse como clave primaria, es un valor que no se repite; puede haber personas con igual apellido y nombre, incluso el mismo domicilio (padre e hijo por ejemplo), pero su documento será siempre distinto. Si tenemos la tabla "usuarios", el nombre de cada usuario puede establecerse como clave primaria, es un valor que no se repite; puede haber usuarios con igual clave, pero su nombre de usuario será siempre distinto. Establecemos que un campo sea clave primaria al momento de creación de la tabla: create table usuarios ( nombre varchar(20), clave varchar(10), primary key(nombre) );

Para definir un campo como clave primaria agregamos "primary key" luego de la definición de todos los campos y entre paréntesis colocamos el nombre del campo que queremos como clave. Si visualizamos la estructura de la tabla con "describe" vemos que el campo "nombre" es clave primaria y no acepta valores nulos(más adelante explicaremos esto detalladamente). Ingresamos algunos registros: insert into usuarios (nombre, clave) values ('Leonardo','payaso'); insert into usuarios (nombre, clave) values ('MarioPerez','Marito'); insert into usuarios (nombre, clave) values ('Marcelo','River'); insert into usuarios (nombre, clave) values ('Gustavo','River');

Si intentamos ingresar un valor para el campo clave que ya existe, aparece un mensaje de error indicando que el registro no se cargó pues el dato clave existe. Esto sucede porque los campos definidos como clave primaria no pueden repetirse. Ingresamos un registro con un nombre de usuario repetido, por ejemplo: insert into usuarios (nombre, clave) values ('Gustavo’, ‘Boca');

Una tabla sólo puede tener una clave primaria. Cualquier campo (de cualquier tipo) puede ser clave primaria, debe cumplir como requisito, que sus valores no se repitan. Al establecer una clave primaria estamos indexando la tabla, es decir, creando un índice para dicha tabla; a este tema lo veremos más adelante.

Tipos de datos Un tipo de datos es la propiedad de un valor que determina su dominio (qué valores puede tomar), qué operaciones se le pueden aplicar y cómo es representado internamente por el computador. Todos los valores que aparecen en un programa tienen un tipo.

A continuación revisaremos los tipos de datos elementales de Python. Además de éstos, existen muchos otros, y más adelante aprenderemos a crear nuestros propios tipos de datos.

Números Enteros El tipo int (del inglés integer, que significa «entero») permite representar números enteros. Los valores que puede tomar un int son todos los números enteros: ... -3, -2, -1, 0, 1, 2, 3,

Valores Lógicos Los valores lógicos True y False (verdadero y falso) son de tipo bool, que representa valores lógicos. El nombre bool viene del matemático George Boole, quien creó un sistema algebraico para la lógica binaria. Por lo mismo, a True y False también se les llama valores booleanos. El nombre no es muy intuitivo, pero es el que se usa en informática, así que hay que conocerlo.

Números Reales El tipo float permite representar números reales. El nombre float viene del término punto flotante, que es la manera en que el computador representa internamente los números reales. Hay que tener mucho cuidado, porque los números reales no se pueden representar de manera exacta en un computador. Por ejemplo, el número decimal 0.7 es representado internamente por el computador mediante la aproximación 0.69999999999999996.

Números Complejos El tipo complex permite representar números complejos. Los números complejos tienen una parte real y una imaginaria. La parte imaginaria es denotada agregando una j inmediatamente después de su valor: 3 + 9j -1.4 + 2.7j

Texto A los valores que representan texto se les llama strings, y tienen el tipo str.

Nulo Existe un valor llamado None (en inglés, «ninguno») que es utilizado para representar casos en que ningún valor es válido, o para indicar que una variable todavía no tiene un valor que tenga sentido. El valor None tiene su propio tipo, llamado None Type, que es diferente al de todos los demás valores.