Decidí hablar de este tema por que me di cuenta que algunos de mis compañeros tanto de taller como de la materia de POO necesitarían conectarse a una base de datos para guardar informacion que anteriormente se solicitara en su programa, en lo personal yo utilice el programa de Access que nos proporciona el officce de Microsotf, y es por eso que quiero ver las diferencias y el funcionamiento de SQL eso.
- El lenguaje de consulta estructurado ( SQL) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en estas.
- Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.
Como sabemos el lenguaje SQL se maneja principalmente por código para la creación de tablas de datos a si como consultas echas de esas tablas.
Para poder observar un ejemplo de creación de tablas para posteriormente llenarlas con los datos de lo que se requiera en el momento o el sistema. Aquí muestro el cogido que se tendría que hacer para la creación de una tabla en SQL:
TRUNCATE TABLE ''TABLA_NOMBRE1''
Y despues se muestra el código para insertar una tabla de otra manera, con una sentencia:
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional. De la siguiente forma:
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Ahora aqui se muestra como ingresar datos a la tabla creada mediante la sentencia INSERT:
INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', 4886850);
Creo que una de las cosas que mas importa en este caso de utilizar bases de datos en SQL,
es como conectar una base de datos creada en SQL, a un programa en java en cualquier,
compilador de java que se tenga, que es una de las dudas que tuve durante la programación en mi proyecto.
En este caso presentare un ejemplo como MySQL que como ya había mencionado es un derivado del SQL.
Lo primero que tenemos que hacer es asegurarnos que el Driver se inicializa y se registra, para ello:
try
{
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e)
{
e.printStackTrace();
}
{
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e)
{
e.printStackTrace();
}
Para establecer la conexión, la clase DriverManager tiene métodos getConnection(). Usaremos uno de ellos:
// Establecemos la conexión con la base de datos.
Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/prueba","root", "la_clave");
Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/prueba","root", "la_clave");
El primer parámetro del método getConnection() es un String que contiene la url de la base de datos.
Este seria el código para la colección a la base de datos desde el código en java.
Para realizar cualquier acción sobre la base de datos (consulta, insertar nuevos registros, modificar los existentes o borrar), necesitamos una clase Statement. Para obtenerla, se le pide dicha clase a la conexión. La forma de hacerlo, para una consulta, es la siguiente:
// Preparamos la consulta
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery ("select * from persona");
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery ("select * from persona");
Otra cosa que se necesita en un sistema es que los datos que hemos capturado en nuestra base de datos se puedan leer para saber la información, a si que aquí va un ejemplo para esto.
El ResultSet contiene dentro los registros leidos de la base de datos. Inicialmente, tal cual nos lo devuelve el Statement.executeQuery(), tiene internamente un "puntero" apuntando justo delante del primer registro. Por tanto, una forma de ir leyendo los registros en meternos en un while:
// Recorremos el resultado, mientras haya registros para leer, y escribimos el resultado en pantalla.
while (rs.next())
{
System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3));
}
while (rs.next())
{
System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3));
}
Y por ultimo otra cosa que yo utilice en mi proyecto (claro con Access) es la de cerrar la conexión a la base de datos al momento de ya no utilizarla, por cualquier inconveniente que se presente, es por eso que aquí dejo un ejemplo de como hacer esto.
Una vez que terminamos de usar la conexión, se debería cerrar, o bien terminar el programa, con lo que se cierra automáticamente y en si no es muy difícil:
// Cerramos la conexion a la base de datos.
conexion.close();
conexion.close();
Espero y esta información pueda servir de algo al momento de trabajar con el lenguaje SQL y con aplicaciones de en JAVA.