Anda di halaman 1dari 12

ACCESO A DATOS DOCUMENTACIN

Acceso Datos TEMA 0

TEMA 0 : REPASO MYSQL


EMPEZAREMOS SABIENDO COMO MANEJAR ECLIPSE, UNA BASE DE DATOS XAMMP,
MEDIANTE SENTENCIAS, Y OPERANDO CON REPOSITORIOS DE CODIGO FUENTE EN LA NUBE
GITHUB -
Archivo comprimido: ADInstalacion.rar
Necesario instalar segn las instrucciones orden_instalacion.txt. Para esta seccin tener instalado al
menos XAMPP. Run Apache y MySql. Acceder en el WebBrowser http://localhost/phpmyadmin/

Ir a mysql pegar por sentencia creacin de base de datos, tablas y dems continuar pinchar en 4 y
veras como la tabla olimpiadas se ha creado.

Recordatorio:
SQL (Structure query language / Lenguaje de Consulta estructurado): Lenguaje de programacin para trabajar con bases
de datos relacionales MySql, Oracle ..etc. Servidor de BD e interpretador SQL. Cuidado porque en Linux es sensible a las mayusculas
- Funcionamiento: lnea de comandos por
o Php: integrado dentro del cdigo

o Linea de comandos

- BD (base de datos): conjunto de tablas que definen una base de datos que tiene un nombre por el que se accede
o SQL> crate database nombreBD > crate table colegio

- Tabla: formada por columnas (lo conforman los atributos de las entidades) y filas (registro)
o SQL> crate table mitabla > crate table profesores (
Acceso Datos TEMA 0

Tabla asociada al nombre profesores, y la sentencia continua y no se crea hasta que no se termine de describir
los campos DNI, nombre y apellidos.
Tabla ejemplo:

Columna o campo 1 Columna o campo 2 Columna o campo 3


DNI (clave primaria) Nombre apellidos

Fila o registro 1 02854447A Pepa Perez


Fila o registro 2 01114247B Antonio garzon

- Campo (columna): el nombre del campo se refiere a la informacin almacenada.


o 1. DNI varchar(9)primary key, // 2.tambien puedes poner solo DNI varchar(9),

o Nombre varchar(10),

o 1.Apellidos varchar(20) // 2.y entonces proseguir aqui con , primary key(DNI)

o );

Con ); se termina de crear la table. Hemos puesto poner o la 1 opcion o la segunda segn se quiera crear la tabla
pero no altera el producto

Clave primaria: identifica un registro en una tabla. Los valores nunca pueden ser nulos ni repetirse
Clave compuesta: si un campo no cumple la condicin para ser clave se utilizan entonces dos.
Ejemplo:
- Tabla:
Un mismo vehculo puede llegar al dia mas de una vez y varios vehculos pueden llegar a la misma hora, por lo que si
conjuntamos estas dos crean una llave nica.

create table vehculos (


patente char(6) not null,
tipo char(4),
horallegada time not null,
horasalida time
);

- Valor: en el campo nombre el valor del primer registro es pepa

Tipos de dato
- Varchar: almacena cadena de caracteres. Una cadena es una secuencia de caracteres se coloca entre collas simples o
compuiestas con una logitud especificada en parntesis. Guarda hasta 255.
- Integer: valores numricos enteros de entre -2000000000 -> 2000000000 aprox
- Float: numricos decimales separadaos por punto.

Mas sentencias:
- AUTO_INCREMENT: solo campos de tipo entero y debe ser clave primaria.
o Percances:

Si el valor esta repetido te mostrara error

Si el valor da saltos entonces toma mysql el mas alto para continuar

El valor 0 no lo toma y el negativo lo ingresa (tiene que aceptar negativos el campo)

o EJ> crate table prueba ( cod int(2) auto_increment, idprueba varchar(10), primary key(cod));

- Show databases / table


- Descripcion del tipo de dato > Describe profesores
Acceso Datos TEMA 0

- Insercin de datos: obligatorio mismo orden


o Insert into profesores (DNI, nombre, apellidos) values (02854447A. Pepa, Perez)

o Insert into profesores (DNI, nombre, apellidos) values (01114247B. Antonio, garzon)

- Sentencias de borrado:
o Borrar tabla > drop table if exist: elimina una tabla si existe. SI no ponemos if exist y no existe la tabla que
queremos borrar te marcaria error
o Vaciar la tabla de datos solo > truncate table(mas rpido que delete)

o Borrar registro > drop from database where DNI= 02854447A. En el caso de que no existan claves en otra tabla
por duplicado

Consultas:
o Que te salga la tabla del ejemplo > Select nombre, clave from usuarios

- Clausula distinct / group by: se utiliza para si buscamos autores y se hallan registros repetidos te elimina la repeticin para
aparecer autores distinguidos. Te aparecen null como valor para autor para evitar esto (+)
select disctinct autor from libros / select autor from libros group by autor + is not null
Acceso Datos TEMA 0

TEMA 1 : JDBC

Bajar eclipse EE Mars: http://www.eclipse.org/downloads/packages/release/Mars/2


Lucia deca preferir mas la 2 Committers. Aunque descargamos en clase la primera

GIT - CURIOSIDAD
Es un software de gestin de versiones eficiente y fiable.
- Gestor de versiones: registro y mantenimiento de las diferentes versiones (conjunto de archivos al
que se le aplicaron modificaciones en su cdigo fuente)
- Necesario: poder recuperar esa versin o esos cambios

GITHUB y SU INTEGRACION CON GIT


Lucia y su Github Aprendiendo a subir proyectos y a bajarlos: https://github.com/lucia-
iesquevedo pica ADT1-JDBCUtilidades o uno de sus proyectos. (IR: Importar proyecto )

Abrir Eclipse
- Espacio de Trabajo (Workspace) > Mi caso fp_profesional>AD> Tma1_JDBC >_proyectos.
Por qu este orden? Al iniciar eclipse selecc espacio de trabajo / carpeta te crea una carpeta metadatos lo que se hace
permanente durante todo el tema 1 para todos los proyectos relaccionados

Proyectos con los que trabajamos Proyecto Java - MAVEN ;


o Opened Windows Eclipse > Cerrar ventana de Welcome para visualizar bien los iconos y
el proyecto que esta detrs.
o File > New > Other > Maven > Maven Proyect > desmarca use default Workspace location
Browse: fp_profesional>AD> Tma1_JDBC >_proyectos - next
1. Group Id: JDBC tema a tratar
2. ArtifactId: AccT1_1(nuestra carpeta) modulo+ntema_ejercicio
3. Package: accDatos. JDBC_ AccT1_1
Acceso Datos TEMA 0

o Elimina la carpeta test porque por lo general no lo vamos a usar


Orden necesario para organizar resultado: Tema a tratar_ Modulo+NTema _Ejercicio.

Por qu Maven?
Proyecto Portable = Maven Baja libreras automticamente (+t espera
bajada libreria) Especificado en el POM.xml donde le introduces
dependencies. Cuando abras un POM para modificar el fichero ve a la
pestaa source en blanco
Librera maven: https://mvnrepository.com/
Integracion de Maven con nuestros proyectos?
Consultar las APIS de Java: https://docs.oracle.com/javase/7/docs/api/

- Subir el proyecto a Github:


o Crear una cuenta y un repositorio
1. Acceder a https://github.com

2. Cuando te la crees: https://github.com/login?return_to=%2Fjoin%3Fsource


%3Dheader-home

3. Crear un nuevo repositori **(indicado en la imagen final) > Realiza los pasos
necesarios para crearlo
Nombre: AccesoDatos
4. Buscar un repositorio **. Accede a tu perfil > Clic AccesoDatos > Copiar cdigo

https: https://github.com/Dirrospace/AccesoDatos.git

5. Ir a eclipse:
Acceso Datos TEMA 0

Team > Share Proyect > Btn Create >


o Repository: Directorio Github en local > C:\Users\Work
Training\Documents\fprofesional\AD\_Github
> Finish
Team > Commit > select all + comentario necesario > (commit and
push)
User and Password > dir ok ok -> ACTUALIZAR WEB GITHUB
Actualizar = commit commit and push

- Importar un proyecto de Github :


o Tomar la direccin del repositorio que quieres - Lucia: https://github.com/lucia-
iesquevedo/ADT1-Cafes
Copiar Clone (en verde) la direccin

o Proceso:
1. Windows > perpective > customize perspective > Pestaa Action Set Availability >
Git + Git Navigation Actions palomita //OK//
2. Window > Perspective > Open Perspective > Github
3. Aparece Icono Git y la ventana: Window > Other > Git > Git Repositories

o 2 WAYS: luego has de dar al icono de al lado de quick Access(open perspective) > Java
para ver los paquetes
1. Mas rpida: File > Import > Git > Proyect from Git > Clone Uri > URI pegar dir >
Browse directorio donde se asientan los proyectos > Finish. Se te importa a la
vista de proyectos
2. Mas lenta Ventana Git: 1 Importas a Tu Git Local 2 Importar desde Tu Git
1 URI: pegar dir > + > elige la carpeta donde ubicarlo + Finish

2 File > Import Proyect From Github > existing local repository y eliges

RUN ECLIPSE
1. PASAR POR ARGUMENTO DE ENTRADA (String) ALGO: ruta, dato
Acceso Datos TEMA 0

a. Desplegr flecha play > Arguments > Program Argumens


i. Ruta: parte de la direccion relativadesde donde esta el proyecto. (Se incluye en la
ruta el src). Ej: el AccT1_1
src\\main\\resources\\propiedades\\propiedades_conn.xml
b. Para llamar a este String se identifica con la variable args[0]. Pones args[0] que apuntara a
el String que hayas puesto. Ej: sustituye Conexion.propiedadesXMLurl por
args[0]

CREAR UN FICHERO PROPIEDADES PARA LA CLASE PROPERTIES (CONEX BD)


El xml propiedades conecta (mirar AccT1_1) se identifica por su cabecero y con la clase Propertyes
adems de con el xml POM de Maven

- Fichero de propiedades, segn la clase Properties de la API. En su ausencia da error. Fichero


Propiedades extensin: .properties, .xml, .config o .txt.
APIS de Java: https://docs.oracle.com/javase/7/docs/api/
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

- Se usara esta etiqueta de cabecero por:


- Ubicacin obligada: carpeta de recursos (resources) misma alatura que java. Al lado del mismo
para que cuando compile no existan problemas.
- Importo las dependencias de mysql a POM.xml para poderse dar la lectura

TEMA 1 - JDBC
Bases de Datos Relaccionales
Necesario: uso de Drivers para su manejo
ODBC (OPEN DATABASE CONECCTIVITY): famosa
JDBC (JAVA DATABASE CONECTIVITY): propia de java. Incorporta ODBC uso no
recomendado
Acceso Datos TEMA 0

Drivers ;
JDBC: 2 de tipo 4
MySQL connector/j de tipo 4

Oracle: incompatible solo con 1


Oracle OCI: tipo 2

CONECTOR
Clases:
o DriverManager: completamente implementado
1. Conexin: aplicacin origen de datos (seala url)
2. Driver: carga automtica (jdbc 4.0 seala el path)
o DataSource: interfaz que oculta detalles del origen de la aplic
1. Caracteristicas avanzadas: ej pool conexin, transacciones distribuidas
2. Empleado: Java EE ( java empresarial, plataforma donde se ejecuta software
java)
3. Dificultad: alta

En el ejercicio1 trabajamos con


- la clase Connection de java y Properties trabaja con
o Properties: el fichero de configuracin y para poder relaccionarlos necesitas de
un link(mirar API)
Acceso Datos TEMA 0

o Connection: el link del pom para bajar el Driver (consultar repositorio)


- Sentencias sql
o Consulta:
1. executeQuery: devuelve Objeto ResulSet
2. executeUpdate: devuelve un entero (filas afectadas por sentencia: inset, delete y
update)
3. execute: return true en caso que la consulta devuelva solo un resultset. SI mas
utilzalo.
4. ResultSet: procesar resultado
5. Statement (s)
6. PreparedStatement (ps) (padre - s): especializacin statement, ventaja
De facilitar las consultas
Utilizar la misma consulta con distintos valores
Este va precompilado y el statement no. Por lo que la mezcla entre ps +s no resulta,
s no lo procesa
o Errores:
1. Sqlexception: salta en la interacion con el origen de datos, permite depurar con
facilidad. Contiene la info de
Descripcin tectial
Cdigo
o estado SQL segn ISO/ANSI
o Causa.Consecuencia de objetos
Referencia a cualquier otra excepcion
Depuracion: public static void printSQLException(SQLException e)
Acceso Datos TEMA 0
Acceso Datos TEMA 0