Aprendiendo Java en "serio" ... [009]

Temario muy básico de Java

  1. Compilar y ejecutar programas Java: java, javac,etc.
  2. Arreglos: vectores y matrices
  3. Introducir datos en Java: Scanner, BufferedReader, JOptionPane, etc.
  4. Uso de Collections: List, HashMap, etc.
  5. Java Swing básico
  6. Proyecto sencillo no.1
  7. IDEs: Eclipse y NetBeans
  8. Java y las base de datos
  9. Proyecto sencillo no.2
  10. Java y XML
  11. Frameworks

Java y las bases de datos

Al desarrollar una aplicación (web o de escritorio) muchas veces es necesario contar con una base de datos para tener un control de la información que se almacena, modifica o se elimina. Java permite utilizar SQL dentro de nuestras aplicaciones. JDBC era una buena alternativa para aplicaciones pequeñas, así que fueron apareciendo Framework ORM (para el mapeo objeto-relacional) como Hibernate para hacer esto más sencillo.

Sistemas de bases de datos

Un SGBD (Sistema Gestores de Base de Datos) es un software que nos permite la creación de las bases de datos, tablas de información y los medios para su manipulación (entre otras cosas).

Una Base de datos es un conjunto de datos (tablas de información) debidamente relacionados entre sí. Los Sistema de bases de datos es la unión de las base de datos y los SGBD.

Algunos SGBD relacionales

  • PostgreSQL
  • Oracle
  • Firebird
  • etc.

nota:

Para realizar la conexión a cualquier base de datos desde Java es necesario contar con los "drivers" o conectores.

Comandos SQL

  1. DCL: Data Control Language. [para asignar/revocar permisos a los ususarios]
    • GRANT
    • REVOKE
  2. TCL: Transaction Control Language. [para el control de las transacciones en la base de datos]
    • COMMIT
    • ROLLBACK
    • SAVEPOINT
  3. DDL: Data Definition Language. [para crear las bases de datos, tablas, etc.]
    • CREATE
    • ALTER
    • DROP
    • RENAME
    • TRUNCATE
  4. DML: Data Manipulation Language [para la manipulación de los datos]
    • SELECT
    • INSERT
    • UPDATE
    • DELETE

--crear base de datos
create database prueba;
--crear tabla
create table usuarios(numero int not null auto_increment primary key, nombre varchar(45) not null,passw varchar(45) not null,email varchar(45) not null);
--insertar valores
insert into usuario(nombre,passw,email) values ("camila","3rN05SiX","camilin@betamail.com"),("carolina","6G@5kil","carolina.gat@betamailo.com"),("tomas","T0O21hZ21","tomcat@latinmail.com");
--mostrar datos
select distinct *from usuario;

Hibernate

Es una herramienta para el mapeo objeto-relacional (ORM). Nos permite recuperar datos y realizar consultas de las BD.

1. Formas de mapeo

  1. Archivos de mapeo XML (*.xml)
  2. Anotaciones (@Anotacion)

2. Configuración

  1. hibernate.cfg.xml
  2. hibernate.properties
  3. dentro del código de la aplicación

3. Generar consultas con Hibernate

  1. SQL nativo
  2. HQL
  3. Criteria

Más información:
Tutoriales de programación Java
http://www.apuntes.delibertad.com/hibernate/empezando-con-hibernate-y-netbeans/

Siguiendo el tutorial del link:

1.Creamos la base y la tabla de información:

prueba.sql

create database prueba;
create table perros(id_dueno int not null auto_increment primary key,tamanyo int not null,raza varchar(20),color varchar(15));

2. Creamos la clase:

Perro.java

public class Perro implements java.io.Serializable{
  private int id_dueno;
  private int tamanyo;
  private String raza;
  private String color;

  public Perro(){}

  /*
  public Perro datos(int id_dueno,int tamanyo,String raza,String color){
   this.id_dueno=id_dueno;
   this.tamanyo=tamanyo;
   this.raza=raza;
   this.color=color;  
   return this;
  }
  */

  public Perro (int id_dueno,int tamanyo,String raza,String color){
   this.id_dueno=id_dueno;
   this.tamanyo=tamanyo;
   this.raza=raza;
   this.color=color;  
  }
 

  public void setId_Dueno(int id_dueno){this.id_dueno=id_dueno;}
  public int getId_Dueno(){ return this.id_dueno;}
  public void setTamanyo(int tamanyo){thistamanyo=tamanyo;}
  public int getTamanyo(){return this.tamanyo;}
  public void setRaza(String raza){this.raza=raza;}
  public String getRaza(){return this.raza;}
  public void setColor(String color){this.color=color;}
  public String getcolor(){return this.color;}

}

3. Creamos el mapeo:

Perro.hbm.xml

<hibernate-mapping>
    <class name="Perro" table="PERROS">
        <id name="id_dueno" column="ID_DUENO">
            <generator class="identity" />
        </id>
        <property name="raza" type="string" column="RAZA" />
        <property name="tamanyo" />
        <property name="color" />
    </class>
</hibernate-mapping>

4. Creamos el hibernate config:

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
 
    <!-- parametros para la conexion a la base de datos -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost/pruebahibernate</property>
    <property name="connection.username">negativo</property>
    <property name="connection.password">n364T1v0</property>
   
    <!-- Configuracion del pool interno -->
    <property name="connection.pool_size">1</property>
   
    <!-- Dialecto de la base de datos -->
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
   
    <!-- Otras propiedades importantes -->
    <property name="show_sql">true</property>
    <property name="hbm2ddl.auto">create-drop</property>
   
    <!-- Archivos de mapeo -->
    <mapping resource="Perro.hbm.xml"/>
  </session-factory>
</hibernate-configuration>


Post anteriores

  1. Presentación del tutorial
  2. Compilar y ejecutar programas java con comandos
  3. Arreglos: vectores y matrices
  4. Introducir datos en Java: Scanner, BufferedReader, JOptionPane, etc.
  5. Uso de Collections: List, HashMap, etc.
  6. Java Swing Básico
  7. Más ejercicios en Java
  8. IDEs: Eclipse y NetBeans


El que quiere aprender aprende

Las imágenes de Homero Simpson y de los demás personajes son propiedad de Matt Groening.