CONNECTION
JAVA CONNECTION:
DEFINICIÓN DE JAVA CONNECTION:
Java Connection, más
conocido por sus siglas JDBC, es una API que permite la ejecución de
operaciones sobre bases de datos desde el lenguaje de programación JAVA,
independiente del sistema operativo donde se ejecute o de la base de datos a la
cual se accede, utilizando el dialecto SQL del modelo del base de datos que se
utilice.
El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de manejadores de conexión hacia
cada modelo específico de base de datos. Un manejador de conexiones hacia un
modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los
tipos de localizadores a base de datos (URL) que
pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta
su programa junto con la biblioteca de conexión apropiada al modelo de su base
de datos, y accede a ella estableciendo una conexión; para ello provee el
localizador a la base de datos y los parámetros de conexión específicos. A
partir de allí puede realizar cualquier tipo de tarea con la base de datos a la
que tenga permiso: consulta, actualización, creación, modificación y borrado de
tablas, ejecución de procedimientos
almacenados en la base de datos, etc.
Interfaz con
la Aplicación:
ü Envío de
instrucciones SQL a la BD:
• Connection
ü Métodos para crear instrucciones y para gestionar
conexiones y sus
propiedades:
• Statement
• Permite enviar instrucciones a la BD.
• PreparedStatement
• Permite usar instrucciones preparadas o SQL básicas
• CallableStatement
• Llamada a procedimientos almacenados en la BD.
• Savepoint
• Puntos de recuperación en una transacción.
ü Recuperación de los resultados de la consulta
a la BD:
RESULTSET:
Conjunto de resultados que se devuelven
de una query.
RESULTSETMETADATA:
Información sobre las columnas
del objeto ResultSet.
ü La conexión a la BD se hace con el método
getConnection()
·
public static Connection getConnection(String url)
·
public static Connection getConnection(String url, String user, String
password)
·
public static Connection getConnection(String url, Properties
info)
ü
Todos pueden lanzar la excepción SQLException
STATEMENT:
·
Encapsula las instrucciones SQL a la BD.
·
Se crea a partir de la conexión.
instruccion = conexion.createStatement();
MÉTODOS:
ü executeQuery(String sql)
• Ejecución de consultas: SELECT
• Devuelve un objeto ResultSet
ü executeUpdate(String sql)
• Modificaciones en la BD: INSERT, UPDATE, DELETE.
• Devuelve el número de columnas afectadas.
ü execute(String sql)
• Ejecución de instrucciones que pueden devolver varios conjuntos de
resultados.
• Requiere usar luego getResultSet() o getUpdateCount() para recuperar los resultados, y getMoreResults() para ver los siguientes resultados.
RESULTSET:
·
Encapsula el conjunto de resultados
·
Para obtener
el valor de cada campo hay que usar el método getX("campo") correspondiente al tipo del valor SQL:
·
Para pasar al siguiente
registro se usa el
método next().
·
Devuelve false cuando no hay más registros
RESULTSET:
·
Por defecto solo se puede recorrer hacia delante.
·
Se pueden prever otras formas de utilizarlo al crear el objeto
STATEMENT:
createStatement(int resultSetType, int resultSetConcurrency)
• resultSetType:
• TYPE_FORWARD_ONLY: sólo hacia delante
con
next()
• TYPE_SCROLL_INSENSITIVE: métodos de posicionamiento habilitados
• TYPE_SCROLL_SENSITIVE: métodos de posicionamiento habilitados pero sensible a las operaciones que se puedan hacer a los datos del ResultSet
• Movimiento hacia atrás: afterLast(), previous()
• Posicionamiento absoluto:
first(), last(), absolute(numFila)
• Posicionamiento relativo:
relative(num)
· Recupera fila actual:
getRow()
• ResultSetConcurrency
• ResultSet.CONCUR_READ_ONLY: El objeto ResultSet no se puede modificar
• ResultSet.CONCUR_UPDATABLE: El objeto ResultSet se puede modificar
PREPAREDSTATEMENT:
·
Cuando se van a ejecutar
instrucciones repetidamente, se
puede recompilar en la BD y ganar
eficiencia.
·
Primero se define el modelo de
instrucción preparada
PreparedStatement ps =
conexion.prepareStatement("INSERT INTO clientes
VALUES");
• Cada parámetro
se representan con el símbolo de interrogación.
·
Luego se
puede utilizar repetidamente simplemente indicando los parámetros con métodos setX(posición, valor)
• El
método depende del tipo de parámetro
• La
posición comienza en 1
• executeUpdate
devolverá la cantidad de elementos
insertados
ps.setString(1, nif); ps.setString(2, nombre); ps.setString(3, direccion); ps.setString(4, email);
if (ps.executeUpdate()!=1)
throw new
Exception("Error en la
Inserción");
SQLEXCEPTION:
ü Es obligatorio capturar estas
excepciones.
ü Se puede obtener información adicional
sobre el error.
• getMessage()
• Mensaje de error de la excepción
• getSQLState()
• Texto
de SQLstate según la convención
X/Open o SQL:2003.
• getErrorCode().
• Código
de error (entero) específico del vendedor.
Ejemplos:
1.
public class InsertarDatos {
public static void main(String[] args)
{
Connection con = null;
PreparedStatement stmt = null;
String sDriver = "com.mysql.jdbc.Driver";
String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";
try{
Class.forName(sDriver).newInstance();
con = DriverManager.getConnection(sURL,"root","");
String sISBN = "84-9815-212-7";
String sTitulo = "Yo,
Carlos";
String sDescripcion="Supuesta autobiografía de Carlos";
String sCategoria = "Novela Histórica";
int idAutor = 3;
stmt = con.prepareStatement("INSERT INTO libros VALUES
stmt.setString(1,sISBN);
stmt.setInt(2,idAutor);
stmt.setString(3,sTitulo);
stmt.setString(4,sDescripcion);
stmt.setString(5,sCategoria);
int retorno = stmt.executeUpdate();
if (retorno>0)
System.out.println("Insertado
correctamente");
} catch (SQLException sqle){
System.out.println("SQLState: "
+ sqle.getSQLState());
System.out.println("SQLErrorCode: "
+ sqle.getErrorCode());
sqle.printStackTrace();
} catch (Exception e){
e.printStackTrace();
} finally {
if (con != null) {
try{
stmt.close();
con.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
3.
public class Coneccion {
Connection c;
Statement s;
ResultSet r;
Connection c;
Statement s;
ResultSet r;
public Coneccion() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("Driver JDBC Gestion cargada");
c=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=Northwind","","");
System.out.println("BD Gestion Conectada");
} catch (SQLException ex) {
Logger.getLogger(Coneccion.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Coneccion.class.getName()).log(Level.SEVERE, null, ex);
}
}
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("Driver JDBC Gestion cargada");
c=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=Northwind","","");
System.out.println("BD Gestion Conectada");
} catch (SQLException ex) {
Logger.getLogger(Coneccion.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Coneccion.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main (String args[]){
Coneccion co=new Coneccion();
}
Coneccion co=new Coneccion();
}
}
RESUMEN:
Java Connection, más
conocido por sus siglas JDBC, es una API que permite la ejecución de
operaciones sobre bases de datos desde el lenguaje de programación JAVA,
independiente del sistema operativo donde se ejecute o de la base de datos a la
cual se accede, utilizando el dialecto SQL del modelo del base de datos que se
utilice.
SUMMARY:
Java Connection, better known by its acronym JDBC is an API that allows the execution of operations on databases from the Java programming language, independent of the operating system on which it runs or database which is accessed using the SQL dialect of the database model used.
Java Connection, better known by its acronym JDBC is an API that allows the execution of operations on databases from the Java programming language, independent of the operating system on which it runs or database which is accessed using the SQL dialect of the database model used.
RECOMENDACIONES:
ü
Es
importante manejar la estructura del lenguaje de Java para poder definir todo
el objeto connection.
ü
Importar
la librería JDBC.
CUNCLUCION:
Es necesario saber manejar esta librería
porque mediante ella podemos acceder a una base de datos desde el lenguaje de
programación Java, además tiene funciones que nos permiten por ejemplo ejecutar
y enviar sentencias SQL y enviarlas a las BBDD además contiene funciones para
almacenar resultados de una consulta.
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 TÉRMINOS:
Dialecto: Variedad
de una lengua que se habla en un determinado territorio.
Query: Cadena de
consulta es un término informático que se utiliza para hacer referencia a
una interacción con una base de datos.
Savepoint: (Punto de
recuperación) es una forma de implementar subtransacciones (también conocidas
como transacciones anidadas) dentro de un sistema gestor de base de datos relacional
indicando un punto dentro de una transacción de base de datos.
Encapsulamiento: Java, como un lenguaje orientado a objetos,
implementa la encapsulación. Este concepto consiste
en la ocultación del estado o de los datos miembro de un objeto, de forma que
sólo es posible modificar los mismos mediante los métodos definidos para dicho
objeto.
Interfáz: Dispositivo capaz de
transformar las señales generadas por un aparato en señales comprensibles por
otro.
LINKOGRAFÍA:
ü http://www.cec.uchile.cl/~luvasque/edo/java/manuales/MsAccess_y_Java.pdf
ü http://albertovilches.com/crear-una-conexion-jdbc
Por favor plantear su FORO sobre el tema. Replantear las CONCLUSIONES y RECOMENDACIONES . Ilustre su trabajo debidamente.Además defina con sus propias palabras el APRECIACION DE EQUIPO. Gracias por su investigación. Saludos . Gracias
ResponderBorrar