DESARROLLO DE SOFTWARE I
1 1.
JAVA CON BASE DE DATOS
1 1.1
DEFINICIÓN
El driver JDBC (Java DataBase Connectivity)
es el más básico de que dispone Java para acceder a la base de datos, las bases de datos que deseemos conectar deberán proveerse
el driver JDBC en un empaquetado JAR para añadirlo a las librerías del
proyecto.
La API JDBC es una parte integral de la plataforma Java,
por lo tanto no es necesario descargar ningún paquete adicional para usarla.
JDBC provee una interfaz única, que independiza a las aplicaciones
del motor de la base de datos.
Conectar tus aplicaciones Java a un servidor de bases de datos es
imprescindible para la funcionalidad de una solución de Software. Al igual que Sql server y C#, Mysql y Java necesitan de una interfaz que proporcione las clases
necesarias para gestionar una conexión.
1 1.2
OBJETOS CONNECTION, STATEMENT Y RESULTSET
Ø Connection
La clase connection
proporciona un interfaz eficiente para el acceso a datos y metadatos de una
base de datos. Conocer los recursos de gambas para acceso a base de datos es fundamental a la hora de obtener un
código transparente al motor de base de datos que utilice la aplicación.
Crear conexión
Las propiedades fundamentales para crear una conexión son:
Name
Es el nombre de la base de datos que queremos abrir. Si no se especifica se creará una base de datos EN MEMORIA.
En Mysql si deseamos crear usuarios, cambiar privilegios, que afecten al gestor de base de datos deberemos acceder a la base de datos "mysql".
Host
Es la ubicación del servidor de base de datos. En muchas ocasiones será "localhost", pero puede ser también un nombre o una dirección IP.
Login y Password
Usuario y clave que definan al usuario que intenta crear la base.
Crear conexión
Las propiedades fundamentales para crear una conexión son:
Name
Es el nombre de la base de datos que queremos abrir. Si no se especifica se creará una base de datos EN MEMORIA.
En Mysql si deseamos crear usuarios, cambiar privilegios, que afecten al gestor de base de datos deberemos acceder a la base de datos "mysql".
Host
Es la ubicación del servidor de base de datos. En muchas ocasiones será "localhost", pero puede ser también un nombre o una dirección IP.
Login y Password
Usuario y clave que definan al usuario que intenta crear la base.
Type
Indica el tipo de base de datos al que queremos acceder (mysql, sqlite,etc).
Port
El puerto por el que accederemos a la base de datos. En el caso de mysql el puerto por defecto es 3306.
Indica el tipo de base de datos al que queremos acceder (mysql, sqlite,etc).
Port
El puerto por el que accederemos a la base de datos. En el caso de mysql el puerto por defecto es 3306.
A continuación se presenta un ejemplo de la clase
con su correspondiente método:
package
ar.com.et3.lab8.ejercicio1.administrador;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* @author Window8
*/
public abstract class AdministradorDeConexiones {
public
AdministradorDeConexiones() {
}
public static Connection
getConnection() throws Exception
{
// Establece el nombre del driver a
utilizar
String
dbDriver = "com.mysql.jdbc.Driver";
// Establece la conexion a
utilizar contra la base de datos
String
dbConnString = "jdbc:mysql://localhost/6to_ET3";
// Establece el usuario de la base de datos
String dbUser = "root";
// Establece la contraseña de la base
de datos
String dbPassword = "";
// Establece el driver de conexión
Class.forName(dbDriver).newInstance();
// Retorna la conexión
return
DriverManager.getConnection(dbConnString, dbUser, dbPassword);
} }
Ø Statement
Creada por el método createStatement().
Un objeto Statement se usa para enviar
sentencias SQL simples.
La interfaz Statement nos
suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery,
executeUpdate y execute. El método a usar está determinado por el producto de
la sentencia SQL.
. El método executeQuery está
diseñado para sentencias que producen como resultado un único ResultSet tal
como las sentencias SELECT.
. El método executeUpdate se usa para ejecutar
sentencias INSERT, UPDATE y DELETE así como sentencias SQL DDL (Data Definition
Language) como CREATE TABLE o DROP TABLE.
El efecto de una sentencia
INSERT, UPDATE y DELETE es una modificación de una o más columnas en cero o más
filas de una tabla. El valor devuelto de executeUpdate es un entero que indica
el número de filas que han sido afectadas (referidos como update count).
Para sentencias tales como
CREATE TABLE o DROP TABLE, que no operan sobre filas, el valor devuelto por
executeUpdate es siempre cero.
. El método execute se usa
solamente para ejecutar sentencias que devuelven más de un Resultset, más que
un update count o una combinación de ambos.
// Define la conexión
Connection laConexion =
AdministradorDeConexiones.getConnection();
// Arma la consulta y la ejecuta
String
laConsulta = "SELECT * FROM alumnos";
Statement stmtConsulta =
laConexion.createStatement();
ResultSet rs =
stmtConsulta.executeQuery(laConsulta);
// Muestra los datos
while( rs.next() )
System.out.println( "ID: " +
rs.getInt("alu_id") + " -- " + "Nombre: " + rs.getString("alu_nombre") + " -- " + "Apellido:
" + rs.getString("alu_apellido") );
// Cierra el Statement y la Connection
stmtConsulta.close();
laConexion.close();
Ø ResultSet
Es la representación en
memoria de las tablas de la base de datos en disco, se puede entender como una
tabla virtual, recordar que generalmente todos los procesos que se realicen con
la tabla (insertar registros, eliminar registros, etc.) se realizarán realmente
contra un ResultSet y no provocarán ningún cambio en la tabla física en disco,
ResultSet tiene un conjunto de métodos muy útiles y muy usados para el proceso
de los renglones de la tabla virtual.
// Declarando y creando objetos globales
Connection canal = null;
ResultSet tabla=
null;
Statement
instruccion=null;
String strcon =
"jdbc:mysql://localhost/mibase?user=lauro&password=laurosoto";
// Abriendo canal o enlace en su propio try-catch
Try {
Class.forName ("com.mysql.jdbc.Driver").newInstance
( );
Canal=DriverManager.getConnection
(strcon);
instruccion =
canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch
(java.lang.ClassNotFoundException e) { } catch (SQLException e) {};
1.3 EJEMPLO
Import java.sql.*;
/**
ResultSetExample.java
**/
public class ResultSetExample {
public static void main(java.lang.String[] args)
{
if (args.length != 2) {
System.out.println("Uso: java ResultSetExample <biblioteca>
<tabla>");
System.out.println("
siendo <biblioteca> la biblioteca que contiene la <tabla>");
System.exit(0);}
Connection con = null;
Statement s = null;
ResultSet
rs = null;
ResultSetMetaData
rsmd = null;
try {
//
Obtener una conexión a base de datos y preparar una sentencia.
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
con =
DriverManager.getConnection("jdbc:db2:*local");
s = con.createStatement();
rs = s.executeQuery("SELECT * FROM " +
args[0] + "." + args[1]);
rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
int rowCount = 0;
while (rs.next()) {
rowCount++;
System.out.println("Datos para la fila
" + rowCount);
for (int i = 1; i <= colCount; i++)
System.out.println(" Fila " + i + ": " +
rs.getString(i));
}
} catch
(Exception e) {
//
Manejar los errores.
System.out.println("Tenemos
un error... ");
e.printStackTrace();
} finally
{
// Asegurarse de limpiar siempre. Si la conexión se cierra, la sentencia que
hay debajo de ella también se cerrará.
if (con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println("Error
grave: no se puede cerrar el objeto conexión");
}
}
}
}
}
2. RESUMEN
JDBC
es el acrónimo de Java Database Connectivity, una API que permite la
ejecución de operaciones sobre bases de datos desde el lenguaje de programación
JAVA, independientemente del sistema operativo donde se ejecute o de la base de
datos a la cual se accede utilizando el lenguaje SQL del móldelo de base de
datos que se utilice.
Está conformada por diversas clases e interfaces ubicadas en el paquete java.sql.
Está conformada por diversas clases e interfaces ubicadas en el paquete java.sql.
Una base de datos es un “almacén” que nos permite
guardar grandes cantidades de información de forma organizada para que luego
podamos encontrar y utilizar fácilmente.
Cada
base de datos se compone de una o más tablas que guarda un conjunto de datos.
Cada tabla tiene una o más columnas y filas. Las
columnas guardan una parte de la información sobre cada elemento que queramos
guardar en la tabla, cada fila de la tabla conforma un registro.
Entre
los diferentes tipos de base de datos, podemos encontrar los siguientes:
- MySql: es
una base de datos con licencia GPL basada en un servidor. Se caracteriza
por su rapidez. No es recomendable usar para grandes volúmenes de datos.
- PostgreSql y
Oracle: Son sistemas de base de datos
poderosos. Administra muy bien grandes cantidades de datos, y suelen ser
utilizadas en intranets y sistemas de gran calibre.
- Access: Es
una base de datos desarrollada por Microsoft.
Esta base de datos, debe ser creada bajo el programa access, el cual crea
un archivo .mdb con la estructura ya explicada.
- Microsoft SQL Server: es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
3.
SUMMARY
JDBC stands for Java Database Connectivity, an API
that allows the execution of operations on databases from the programming
language JAVA, regardless of operating system you are running or the database
which is accessed using the SQL language the móldelo database used.
It consists of various classes and interfaces located
in the java.sql package.
A database is a "store" that allows us to
store large amounts of information in an organized way so that we can then
easily find and use.
Each database consists of one or more tables that
stores a data set. Each table has one or more columns and rows. The columns
bear a part of the information about each item you want to save in the table,
each row of the table forms a record.
Among the different types of database, we can find the
following:
•
MySql: database is a GPL
licensed based on a server. It is characterized by its speed. It is not
recommended to use for large data volumes.
•
PostgreSQL and Oracle
database systems are powerful data. It manages fine large amounts of data, and
are often used in intranets and large caliber systems.
• Access: A
database developed by Microsoft. This database must be created under the access
program, which creates an .mdb file with the already explained structure.
• Microsoft SQL
Server: is a more powerful database access developed by Microsoft. It is
used to handle large volumes of information.
4.
RECOMENDACIONES
Los sistemas
de bases de datos libres o gratuitos recomendados para su uso son:
Otras bases de datos que se requieren pagar para poder utilizarlas son:
Se recomienda que a la hora de aprender a programar con bases de datos, una buena opción es aprender con Oracle y su lenguaje SQL, ya que Oracle facilita versiones de prueba (académicas o de estudio) gratuitas que pueden servir para aprender y es que una vez que hayamos aprendido con Oracle la adaptación a cualquier otra base de datos es relativamente sencilla.
Finalmente, indicar que antes de aprender programación con
bases de datos, es conveniente conocer los fundamentos de programación
(algoritmia) así como uno o varios lenguajes de programación.
5.
CONCLUSIONES
Al
finalizar este trabajo de investigación podemos concluir que:
El propósito de una base de datos es responder
a consultas y ejecutar transacciones de datos, también se entiende que tiene
una elevada capacidad y solidez para administrar la información sin fallos ni
errores.
MySQL
ha sido un gestor de bases de datos muy útil desde que fue creado, y con el
tiempo, nuevas funciones se le añadieron, expandiéndose y volviéndolo más útil,
y convirtiéndose así en uno de los gestores de bases de datos más utilizados a
nivel mundial, junto a Oracle.
SQL
significó un gran avance para este fin, almacenar y clasificar información,
además de que gracias a su aparición, hoy en día existe una gran variedad de
SGBD basados en el lenguaje SQL, como MySQL, PostgreSQL, Oracle, entre otros.
Desde su estandarización, casi todos los programas que trabajan con bases de
datos, utilizan este lenguaje, con diferentes variaciones y funciones, según el
tipo de software y su objetivo.
6.
APRECIACIONES DEL EQUIPO
Durante
la realización de este trabajo, aprendimos acerca del, lenguaje SQL, de los
sistemas de gestión de bases de datos, y su importancia y utilidad a la hora de
almacenar, clasificar y manejar información, de cualquier tipo.
7.
GLOSARIO DE TÉRMINOS
API: Una API nos permite implementar
las funciones y procedimientos que engloba en nuestro proyecto sin la necesidad
de programarlas de nuevo. En términos de programación, es
una capa de abstracción.
GLP: Es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones,
compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el
software.
Cliente/Servidor: Modelo de aplicación en la que un equipo actúa como
servidor y procesa las peticiones que llegan de los clientes. En SQL el
ordenador en el que se ejecuta la aplicación es el servidor y los ordenadores
con las aplicaciones que usan las bases de datos son los clientes. (Aunque
también es posible que ambos estén en un mismo computador).
DBO: Siglas de Database Owner, se refiere al propietario de una
base de datos, al usuario que la creó.
DDL: Data Definition Language, dentro del SQL es un vocabulario
usado para crear y modificar la estructura de las tablas, ejemplos: CREATE,
ALTER o DROP.
DML: Data Manipulation Language, igualmente dentro del SQL es
un vocabulario usado para gestionar los datos, ejemplos: SELECT, INSERT,
UPDATE.
HTML: Siglas de Hypertext Markup Language, lenguaje usado para
realizar páginas web.
NULL: Valor que se muestra ante un valor desconocido en una base
de datos.
SQL: Structured Query Language, lenguaje informático para el
tratamiento de base de datos.
XML:
eXtensible Markup Language, lenguaje informático usado para almacenar datos,
soporta acceso a base de datos. (Término relacionado XBRL).
8. LINKOGRAFÍA


No hay comentarios.:
Publicar un comentario