UNIVERSIDAD POLITÉCNICA AMAZÓNICA
CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS Y TELEMÁTICA
DOCENTE : MARCO AURELIO PORRO CHULLI
CICLO : V-A
NOMBRE DEL GRUPO : THE ENGINEERS
INTEGRANTES:
INGRID LESLY CORONEL ACUÑA
CRISTHIAN SERGIO KAYAP YAGKIKAT
CONNECTION
Connection con = DriverManager.getConnection (
url,login, password);
n Un objeto “Connection” representa una conexión a una base de datos.
n La clase “DriverManager” intenta ubicar el controlador que pueda conectarse a la base de datos representada en la URL.
Conexión interfaz pública Envoltura extiende, AutoCloseable Una conexión (sesión) con una base de datos específica. Sentencias SQL se ejecutan y los resultados se devuelven en el contexto de una conexión. Base de datos de un objeto de conexión es capaz de proporcionar información que describe sus mesas, su gramática apoyada SQL, sus procedimientos almacenados, las capacidades de esta conexión, y así sucesivamente. Esta información se obtiene con el método getMetaData. Nota: Al configurar una conexión, aplicaciones JDBC deben utilizar el método de conexión apropiado tal como setAutoCommit o setTransactionIsolation. Las aplicaciones no deben invocar comandos SQL directamente para cambiar la configuración de la conexión cuando existe un método de JDBC disponibles. Por defecto, un objeto de conexión se encuentra en modo de confirmación automática, lo que significa que se compromete de forma automática los cambios después de la ejecución de cada instrucción. Si el modo de confirmación automática ha sido desactivada, el método commit se debe llamar de forma explícita con el fin de confirmar los cambios; de lo contrario, no se guardarán los cambios de base de datos. Un nuevo objeto de conexión creado mediante la API básica de JDBC tiene un mapa tipo inicialmente vacío asociado a él.
Un usuario puede introducir una asignación personalizada para un UDT en este tipo de mapa. Cuando un UDT se recupera de una fuente de datos con la ResultSet.getObject método, el método getObject comprobará tipo de mapa de la conexión para ver si hay una entrada para ese UDT. Si es así, el método getObject mapeará la UDT a la categoría indicada. Si no hay ninguna entrada, la UDT se asignará mediante el mapeo estándar. Un usuario puede crear un nuevo tipo de mapa, que es un objeto java.util.Map, hacer una entrada en ella, y pasarlo a los métodos que pueden realizar java.sql asignación personalizada. En este caso, el método utilizará el tipo de mapa dado en lugar de la asociada a la conexión. Por ejemplo, el siguiente fragmento de código especifica que los atletas de tipo SQL se asignan a los atletas de clase en el lenguaje de programación Java. El fragmento de código recupera el tipo de mapa para el objeto Connection con, inserta la entrada en ella, y selecciona el tipo de mapa con la nueva entrada como tipo de mapa de la conexión. mapa java.util.Map = con.getTypeMap (); map.put ( "mySchemaName.ATHLETES", Class.forName ( "Atletas")); con.setTypeMap (mapa); Ver también: DriverManager.getConnection (java.lang.String, java.util.Properties), Norma, se ResultSet, DatabaseMetaData
El objeto Connection es el principal objeto utilizado para proporcionar un vínculo entre las bases de datos y una aplicación en Java. Connection proporciona métodos para manejar el procesamiento de transacciones, para crear objetos y ejecutar instrucciones SQL, y para crear objetos para la ejecución de procedimientos almacenados.
Se puede emplear tanto el objeto Driver como el objeto DriverManager para crear un objeto Connection. Se utiliza el método connect() para el objeto Driver, y el método getConnection()para el objeto DriverManager.
El objeto Connection proporciona una conexión estática a la base de datos. Esto significa que hasta que se llame en forma explícita a su método close () para cerrar la conexión o se destruya el objeto Connection, la conexión a la base de datos permanecerá activa.
La manera más usual de establecer una conexión a una base de datos es invocando el método getConnection() de la clase DriverManager. A menudo, las bases de datos están protegidas con nombres de usuario (login) y contraseñas (password) para restringir el acceso a las mismas. El método getConnection() permite que el nombre de usuario y la contraseña se pasen también como parámetros.
La manera más usual de establecer una conexión a una base de datos es invocando el método getConnection() de la clase DriverManager. A menudo, las bases de datos están protegidas con nombres de usuario (login) y contraseñas (password) para restringir el acceso a las mismas. El método getConnection() permite que el nombre de usuario y la contraseña se pasen también como parámetros.
String usuario = "root";
String contraseña = "123456789";
Connection conn = DriverManager.getConnection(url,usuario,contraseña);
En toda aplicación de bases de datos con MySQL es indispensable poder establecer la conexión al servidor para posteriormente enviarle las consultas. Los programas en Java no son la excepción. El siguiente código va a servir para verificar que podemos establecer una conexión a la base de datos agendita.
import java.sql.*;
public class ConexionBD
{
static String bd = "sesion";
static String login = "root";
static String password = "123456789";
static String url = "jdbc:mysql://localhost/"+bd;
public static void main(String[] args) throws Exception
{
Connection conn = null;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,login,password);
if (conn != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");
conn.close();
}
}
catch(SQLException ex)
{
System.out.println(ex);
}
catch(ClassNotFoundException ex)
{
System.out.println(ex);
}
}
}
CREACIÓN DE SENTENCIAS
El objeto Connection permite establecer una conexión a una base de datos. Para ejecutar instrucciones SQL y procesar los resultados de las mismas, se debe hacer uso de un objetoStatement.
Los objetos Statement envgan comandos SQL a la base de datos, y pueden ser de cualquiera de los tipos siguientes:
Los objetos Statement envgan comandos SQL a la base de datos, y pueden ser de cualquiera de los tipos siguientes:
· Un comando de definición de datos como CREATE TABLE o CREATE INDEX.
· Un comando de manipulación de datos como INSERT, DELETE o UPDATE.
· Un sentencia SELECT para consulta de datos.
Un comando de manipulación de datos devuelve un contador con el número de filas (registros) afectados, o modificados, mientras una instrucción SELECT devuelve un conjunto de registros denominado conjunto de resultados (result set). La interfaz Statement no tiene un constructor , sin embargo, podemos obtener un objeto Statement al invocar el método createStatement() de un objeto Connection.
conn = DriverManager.getConnection(url,login,pasword);
Statement stmt = conn.createStatement();
Una vez creado el objeto Statement, se puede emplear para enviar consultas a la base de datos usando los métodos execute(), executeUpdate() o executeQuery(). La elección del método depende del tipo de consulta que se va a enviar al servidor de bases de datos:
Método
|
Descripción
|
execute( )
|
Se usa principalmente cuando una sentencia SQL regresa varios conjuntos de resultados. Esto ocurre principalmente cuando se está haciendo uso de procedimientos almacenados.
|
executeUpdate( )
|
Este método se utiliza con instrucciones SQL de manipulación de datos tales como INSERT, DELETE o UPDATE.
|
executeQuery( )
|
Se usa en las instrucciones del tipo SELECT.
|
Es recomendable que se cierren los objetos Connection y Statement que se hayan creado cuando ya no se necesiten. Lo que sucede es que cuando en una aplicación en Java se están usando recursos externos, como es el caso del acceso a bases de datos con el API JDBC, el recolector de basura de Java (garbage collector) no tiene manera de conocer cuál es el estado de esos recursos, y por lo tanto, no es capaz de liberarlos en el caso de que ya no sean útiles. Lo que ocurre en estos casos es que se pueden quedar almacenados en memoria grandes cantidades de recursos relacionados con la aplicación de bases de datos que se está ejecutando. Es por esto que se recomienda que se cierren de manera explícita los objetos Connection y Statement.
De manera similar a Connection, la interfaz Statement tiene un método close() que permite cerrar de manera explícita un objeto Statement. Al cerrar un objeto Statement se liberan los recursos que están en uso tanto en la aplicación Java como en el servidor de bases de datos.
Statement stmt = conn.createStatement();.
stmt.close();
Ejecución de consultas
Cuando se ejecutan sentencias SELECT usando el método executeQuery(), se obtiene como respuesta un conjunto de resultados, que en Java es representado por un objeto ResultSet.
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery("SELECT * FROM estudiante");
Se puede pensar en un conjunto de resultados como una tabla ( filas y columnas ) en la que están los datos obtenidos por una sentencia SELECT.
La información del conjunto de resultados se puede obtener usando el método next() y los diversos métodos getXXX() del objeto ResultSet. El método next() permite moverse fila por fila a través del ResultSet, mientras que los diversos métodos getXXX() permiten accesar a los datos de una fila en particular.
Los métodos getXXX () toman como argumento el índice o nombre de una columna, y regresan un valor con el tipo de datos especificado en el método. Así por ejemplo, getString () regresará una cadena, getBoolean () regresará un booleano y getInt() regresará un entero. Cabe mencionar que estos métodos deben tener una correspondencia con los tipos de datos que se tienen en el ResultSet, y que son a las vez los tipos de datos provenientes de la consulta SELECT en la base de datos, sin embargo, si únicamente se desean mostrar los datos se puede usar getString() sin importar el tipo de dato de la columna.
Por otra parte, si en estos métodos se utiliza la versión que toma el índice de la columna, se debe considerar que los índices empiezan a partir de 1, y no en 0 (cero) como en los arreglos, los vectores, y algunas otras estructuras de datos de Java.
Existe un objeto ResultSetMetaData que proporciona varios métodos para obtener información sobre los datos que están dentro de un objeto ResultSet. Estos métodos permiten entre otras cosas obtener de manera dinámica el número de columnas en el conjunto de resultados, así como el nombre y el tipo de cada columna.
Por otra parte, si en estos métodos se utiliza la versión que toma el índice de la columna, se debe considerar que los índices empiezan a partir de 1, y no en 0 (cero) como en los arreglos, los vectores, y algunas otras estructuras de datos de Java.
Existe un objeto ResultSetMetaData que proporciona varios métodos para obtener información sobre los datos que están dentro de un objeto ResultSet. Estos métodos permiten entre otras cosas obtener de manera dinámica el número de columnas en el conjunto de resultados, así como el nombre y el tipo de cada columna.
ResultSet res = stmt.executeQuery("SELECT * FROM estudiante");
ResultSetMetaData metadata = res.getMetaData();
java.sql.Connection Representa la conexión con la Base de Datos. El encargado de abrir una conexión es el Driver Manager mediante el método estático: public static Connection getConnection(url, usr, pwr)trows java.sql.SQLException Donde: url: Identificador de la Base de Datos usr: Usuario con el que se abre la conexión (opcional) pwr: Contraseña del Usuario (opcional) EJEMPLO DE URL Genérico ODBC: “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + String SitioBase; Donde: String SitioBase: el directorio donde se encuentra la Base de Datos SQL Structured Query Language. Lenguaje Estándar de Interrogación de Bases de Datos java.sql.Connection A través de la conexión nos comunicamos con la Base de Datos, enviándole sentencias SQL. Las sentencias SQL se envían a través de “Statements”. Existen tres tipos de “Statements” y un método para generar cada tipo. java.sql.Connection Una vez terminada una Conexión, se debe “Liberar”, que es cerrarla, de modo análogo a como se trabaja con flujos (Streams). Las conexiones se cierran con el método: public void close() trows java.sql.SQLException; Statements java.sql.Statement: createStatement(); java.sql.PreparedStatement: prepareStatement(); java.sql.Statement Se usa para ejecutar sentencias SQL. Lleva asociada una conexión que sirvió como origen para su creación Se crea con el método de la clase: java.sql.Connection: public Statement createStament() trows java.sql.SQLException; java.sql.Statement Las sentencias se cierran con el método: public void close() trows java.sql.SQLException; El método para ejecutarla depende del tipo de sentencia SQL que contenga. java.sql.Statement Sentencias SELEC: se usa el método: executeQuery(String sql). devuelve una instancia de java.sql.ResultSet. Sentencias INSERT, UPDATE, DELETE: se usa el método: executeUpdate(String sql). devuelve un int con el número de filas afectadas java.sql.ResultSet Representa el resultado de la ejecución de una sentencia SQL. Lleva asociadas las filas y columnas que cumplían con la sentencia SQL. Implementa métodos para: -Acceder a las filas que componen el resultado. -Acceder al valor de cada columna de la fila seleccionada. java.sql.ResultSet Los ResultSet se cierran mediante el método: public boolean close() trows java.sql.SQLException; El ResultSet se cierra automáticamente al cerrar el Statement que la creó. No obstante no está demás cerrarlo.
PROPIEDADES
ConnectionString
Especifica la referencia a la base de datos con la cual queremos conectar, conteniendo en una cadena de texto la información necesaria para efectuar esa conexión mediante parejas de valores separadas por “ ; ”.
Los valores que podemos asignar son:
Data Source: DNS=Nombre ODBC de la Base de Datos
Usuario: UID =Nombre de Usuario
Password: PWD=Password del usuario para la base de datos
Ejemplo:
<%conexion.ConnectionString="DSN=MIOdbc;UID=pepe;PWD=1234"%>
Mode
<%conexion.ConnectionString="DSN=MIOdbc;UID=pepe;PWD=1234"%>
Mode
Especifica los permisos de la conexión.
Algunos de los valores más habituales de la conexión son
1. Establece permiso solo de Lectura
2. Establece permiso solo de escritura
3. Establece permiso de Lectura /Escritura
Ejemplo:
<%conexion.Mode=3%>
v Métodos:
BeginTrans
Abre una transacción; todas las operaciones que realicemos a partir de ese momento no serán efectivas hasta que no cerremos la transacción.
Ejemplo:
<%conexion.BeginTrans%>
Close
Abre una transacción; todas las operaciones que realicemos a partir de ese momento no serán efectivas hasta que no cerremos la transacción.
Ejemplo:
<%conexion.BeginTrans%>
Close
Cierra el Objeto
Ejemplo:
<%conexion.close%>
CommitTrans
Cierra una transacción haciendo efectivos los cambios efectuados dentro
<%conexion.close%>
CommitTrans
Cierra una transacción haciendo efectivos los cambios efectuados dentro
de ella;
Ejemplo:
<%conexion.CommitTrans%>
Execute
<%conexion.CommitTrans%>
Execute
Ejecuta una sentencia SQL contra la base de datos.
Ejemplo
<%Set resultado=conexión.execute(SELECT*FROM Amigos)%>
Open
Abre la conexión con los parámetros especificados en las propiedades.
Ejemplo
<%conexion.open%>
RollBackTrans
Deshace todos los cambios efectuados en la base de datos desde el inicio
<%conexion.open%>
RollBackTrans
Deshace todos los cambios efectuados en la base de datos desde el inicio
De la transacción.
Ejemplo:
<% conexion.RollBackTrans %>
<% conexion.RollBackTrans %>
EJEMPLOS
Un ejemplo básico de la conexión completo sería el siguiente.
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import oracle.ucp.jdbc.PoolDataSourceFactory;
import oracle.ucp.jdbc.PoolDataSource;
public class BasicConnectionExample {
public static void main(String args[]) throws SQLException {
try
{
//Crea la instancia con el pool.
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource()
//introduce las condiciones de la conexión
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@//localhost:1521/XE");
pds.setUser("<user>");
pds.setPassword("<password>");
//Pripiedades del pool.
pds.setInitialPoolSize(5);
//Obtener la conexión con la base de datos.
Connection conn = pds.getConnection();
System.out.println("\nConnection obtained from " +
"UniversalConnectionPool\n");
//se ejecutan las operaciones con las bases de datos
Statement stmt = conn.createStatement ();
stmt.execute("select * from foo");
//Se cierra la conexion.
conn.close();
conn=null;
System.out.println("Connection returned to the " +
"UniversalConnectionPool\n");
}
catch(SQLException e)
{
System.out.println("BasicConnectionExample - " +
"main()-SQLException occurred : "
+ e.getMessage());
}
}
}
RESUMEN
El objeto Connection es el principal objeto utilizado para proporcionar un vínculo entre las bases de datos y una aplicación en Java.
Connection proporciona métodos para manejar el procesamiento de transacciones, para crear objetos y ejecutar instrucciones SQL, y para crear objetos para la ejecución de procedimientos almacenados.
Se utiliza el método connect () para el objeto Driver, y el método get Connection () para el objeto Driver Manager.
Esto significa que hasta que se llame en forma explícita a su método close () para cerrar la conexión o se destruya el objeto Connection, la conexión a la base de datos permanecerá activa.
La interfaz Statement no tiene un constructor, sin embargo, podemos obtener un objeto Statement al invocar el método créate Statement () de un objeto Connection.
Una vez creado el objeto Statement, se puede emplear para enviar consultas a la base de datos usando los metodos execute(), execute Update() o execute Query().
SUMARY
The Connection object is the main object used to provide a link between databases and Java application.
Connection provides methods to handle transaction processing, to create objects and execute SQL statements, and to create objects for the execution of stored procedures.
The connect () method for the Driver object and the Connection method get () for the Driver Manager Object is used.
This means that until you explicitly call his method close () to close the connection or the connection object, the connection to remain active data base is destroyed.
The Statement interface does not have a constructor, however, we can obtain a Statement object to invoke the method create Statement () of a Connection object.
Once you created the Statement object can be used to send queries to the database using the methods execute (), execute Update () or execute Query ().
RECOMENDACIONES
Es importante manejar la estructura del lenguaje de Java para poder definir todo el objeto connection.
Importar la librería JDBC.
CONCLUSIONES
Si no se producen exepciones el metodo getconnection nos devuelve un objeto que implementa la interfaz connection.
Podemos crear varias conexiones con distintas bases de datos o incluso con la misma
Cada conexion representa una sesion con la BD.
End objeto connection nos premature acceder a la base de datos para realizar operations sober Ella y oftener resultados
APRECIACION DEL EQUIPO
Saber manejar el lenguaje de programación Java es muy importante por los múltiples beneficios, entonces mediante su estudio podemos conocer su estructura y sobretodo como podemos acceder a una Base de Datos desde la plataforma Java. En este tema podemos conocer cómo acceder a una Base de Datos utilizando la clase Connection o más conocida como JDBC.
GLOSARIO DE TERMINOS
API: La interfaz de programación de aplicaciones, abreviada como API1 (del inglés: Application Programming Interface), es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
RESULTSET: En SQL ResultSet es un conjunto de filas de una base de datos, así como los
metadatos acerca de la consulta, tales como los nombres de las columnas, y los tipos y
tamaños de cada columna. Dependiendo del sistema de base de datos, el número de filas del
conjunto de resultados puede ser o no ser conocido. Por lo general, este número no se conoce
por adelantado debido a que el conjunto de resultados se construye sobre la marcha.
JDBC: Java Database Connectivity (JDBC) es una interfaz de programación de aplicaciones
(API) para el lenguaje de programación Java, que define la forma en que un cliente puede acceder
a una base de datos. Es parte de la plataforma Java Standard Edition, de Oracle Corporation.
Proporciona métodos para consultar y actualizar datos en una base de datos, y se orienta hacia
las bases de datos relacionales. Un puente JDBC-to-ODBC permite conexiones a cualquier fuente
de datos ODBC accesible en el entorno de acogida máquina virtual Java (JVM).
BIBLIOGRAFIA O LINCOGRAFIA
http://www.cec.uchile.cl/~luvasque/edo/java/manuales/MsAccess_y_Java.pdf
LINK DE LA DIAPOSITIVA SOBRE CONNECTION
http://es.slideshare.net/INGRIDLESLYCORONELAC/connection-trabajo
LINK DE LA DIAPOSITIVA SOBRE CONNECTION
http://es.slideshare.net/INGRIDLESLYCORONELAC/connection-trabajo
