0% encontró este documento útil (0 votos)
14 vistas17 páginas

Java Día 06

Cargado por

Francisco Cuevas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas17 páginas

Java Día 06

Cargado por

Francisco Cuevas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 17

JAVA ©

Día 6
SQL
El Structured Query Languaje es un leguaje de acceso a
bases de datos relacionales que permite realizar
diferentes operaciones en ellas tales como INSERT,
UPDATE, DELETE y SELECT.

contacto
id_contacto int
nombre_contacto varchar
direccion_contacto varchar
celular_contacto varchar
email_contacto varchar
INSERT
INSERT INTO <tabla>[(<columna>[{,<columna>}])]
VALUES (<valor>[,<valor>])

INSERT INTO contacto(nombre_contacto,


direccion_contacto, celular_contacto, email_contacto)
VALUES('Juan C.', 'No me la se', '55-2316-0604',
'[email protected]')

Veamos la clase InsertExample.java


UPDATE
UPDATE <tabla>
SET <columna> = <valor>[{,<columna>=<valor>}]
[WHERE <condicion>[{ AND|OR <condicion>}]]

UPDATE contacto SET direccion_contacto='Jardines de


Morelos'
WHERE id_contacto=4

Veamos la clase UpdateExample.java


DELETE
DELETE FROM <tabla>
[WHERE <condicion>[{ AND|OR <condicion>}]]

DELETE FROM contacto


WHERE id_contacto=4

Veamos la clase DeleteExample.java


SELECT
SELECT [ALL |DISTINCT ] <columna> [{,<columna>}]
FROM <tabla>|<vista> [{,<tabla>|<vista>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <columna> [{,<columna>}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <columna>|<indice> [ASC | DESC] [{,<columna>|<indice> [ASC | DESC ]}]]

SELECT id_contacto,nombre_contacto,direccion_contacto,celular_contacto
,email_contacto
FROM contacto
WHERE nombre_contacto LIKE '%Juan C.%'
ORDER BY nombre_contacto,email_contacto

Veamos la clase SelectExample.java


JDBC
Java DataBase Connectivity es un API que permite
operaciones sobre base de datos desde Java
independientemente de la base de datos a la cual se accede y
utilizando el dialecto SQL que la base de datos utilice.

Debemos utilizar un paquete para poder conectarnos a la base


de datos:

import java.sql.*;

Veamos la clase SQLExample1.java


Paquete java.sql

Clase Descripción
DriverManager Para cargar un driver y crear la conexió n a la BD
Connection Para gestionar la conexió n con la BD
Statement Para ejecutar sentencias SQL
ResultSet Para almacenar el resultado de la consulta
DriverManager
Nos permite crear una conexió n a la base de datos, para ello
utilizamos el método:

getConnection(String url, String user, String password)

Este método nos devuelve un objeto de tipo Connection

Connection conexió n = DriverManager.getConnection(


"jdbc:mysql://10.20.18.15/curso_java",
"javauser",
"p1kachu19");
Connection
Permite gestionar la conexió n y preparar sentencias
(statements) a través del método:

prepareStatement(String sql)

Este método nos devuelve un objeto de tipo


PreparedStatement

PreparedStatement ps=conexion.prepareStatement(
"SELECT * FROM contacto“);
PreparedStatement
Contiene métodos para crear nuestro sentencia SQL y
ejecutarla.

Tiene métodos tales como:


0 setInt(int parameterIndex, int x);
0 setLong(int parameterIndex, long x);
0 setString(int parameterIndex, String x);
0 setLong(int parameterIndex, Date x);
0 setBlob(int parameterIndex, Blob x);
PreparedStatement
PreparedStatement
ps=conexion.prepareStatement("INSERT INTO
contacto(nombre_contacto, direccion_contacto,
celular_contacto, email_contacto) VALUES(?,?,?,?)");
ps.setString(1,"Juan C.");
ps.setString(2,"No me la se");
ps.setString(3,"55-2316-0604");
ps.setString(4,"[email protected]");
PreparedStatement
ejecutar
Tenemos dos métodos para ejecutar nuestra sentencia:
0 executeUpdate();
0 executeQuery();

executeUpdate sirve para el INSERT, UPDATE y DELETE


executeQuery sirve para el SELECT y devuelve un objeto
de tipo ResulSet

ResultSet rs=ps.executeQuery();
ResultSet
Almacena y permite obtener los resultados de una
consulta.

Para obtener las columnas, tenemos métodos tales


como:
getString(int columnIndex);
getString(String columnLabel);
getInt(int columnIndex);
getBlob(String columnLabel);
ResultSet
Para recorrer el ResultSet, tenemos el método:
next();

El cual nos devuelve un true si al avanzar una posició n en


el ResultSet aun hay filas.

while(rs.next( )) {
System.out.println(“Nombre: “
+rs.getString(“nombre_contacto”);
}
Inyecciones SQL
Una inyecció n SQL es una técnica de Hackeo para
obtener permisos de alto nivel. Consiste en alterar la
sentencia preestablecida por una que permita saltarse
la seguridad.

Veamos la clase InyeccionSQL.java


Almacenando consultas en
memoria
Podemos utilizar un List o un Map para guardar
nuestros resultados antes de cerrar la conexió n con la
Base de datos y perderlos, para esto necesitamos una
clase Entity que no es mas que una clase que cuenta con
los atributos necesarios para guardar toda una fila de
nuestros resultados y tener getters y setters.

Veamos las clases Contacto.java y SQLExample2.java

También podría gustarte