Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Competencia.
ODBC es una interfaz de nivel de llamada que permite que las aplicaciones tengan
acceso a los datos de cualquier base de datos en la que haya un controlador ODBC.
La utilización de ODBC permite crear aplicaciones de base de datos con acceso a
cualquier base de datos en la que el usuario final tenga un controlador ODBC. ODBC
proporciona una API que permite que la aplicación sea independiente del sistema de
administración de bases de datos (DBMS) de origen.
Para que una aplicación sea independiente de los DBMS tiene que trabajar a través
de un controlador ODBC creado específicamente para un DBMS, en lugar de trabajar
directamente con el DBMS. El controlador convierte las llamadas en comandos que
el DBMS correspondiente puede utilizar, con lo que se simplifica el trabajo del
desarrollador, y hace que esté disponible para una amplia gama de orígenes de datos.
Las clases de base de datos admiten cualquier origen de datos para el que se tenga
un controlador ODBC. Entre ellos se puede incluir, por ejemplo, una base de datos
relacional, una base de datos de método de acceso secuencial indizado (ISAM), una
hoja de cálculo de Microsoft Excel o un archivo de texto. Los controladores ODBC
administran las conexiones al origen de datos y se utiliza SQL para seleccionar los
registros de la base de datos.
IBM DB2
jdbc:db2://<HOST>:<PORT>/<DB>
COM.ibm.db2.jdbc.app.DB2Driver
JDBC-ODBC Bridge
jdbc:odbc:<DB>
sun.jdbc.odbc.JdbcOdbcDriver
Oracle Thin
jdbc:oracle:thin:@<HOST>:<PORT>:<SID>
oracle.jdbc.driver.OracleDriver
Cloudscape
jdbc:cloudscape:<DB>
COM.cloudscape.core.JDBCDriver
Cloudscape RMI
jdbc:rmi://<HOST>:<PORT>/jdbc:cloudscape:<DB>
RmiJdbc.RJDriver
IDS Server
jdbc:ids://<HOST>:<PORT>/conn?dsn='<ODBC_DSN_NAME>'
ids.sql.IDSDriver
Oracle OCI 8i
jdbc:oracle:oci8:@<SID>
oracle.jdbc.driver.OracleDriver
Oracle OCI 9i
jdbc:oracle:oci:@<SID>
oracle.jdbc.driver.OracleDriver
Para probar su controlador una vez que esté instalado, intente con el siguiente código:
Class.forName("Driver name");
Connection con = DriverManager.getConnenction("jdbcurl","username","password");
6.2. Conectividad desde un lenguaje huésped o en dispositivos móviles.
La consulta especifica que las filas de (from) la tabla cliente donde (where) el id-cliente
es 19 283 746 se debe recuperar, y que se debe mostrar el atributo nombre de estas
filas. Las consultas pueden involucrar información de más de una tabla. Por ejemplo,
la siguiente consulta encuentra el saldo de todas las cuentas pertenecientes al cliente
cuyo identificador de cliente es 19 283.
select cuenta. saldo from cuenta, cliente
En el nivel físico se deben definir algoritmos que permitan un acceso eficiente a los
datos. En los niveles superiores de abstracción se enfatiza la facilidad de uso. El
objetivo es proporcionar una interacción humana eficiente con el sistema. El
componente procesador de consultas del sistema de bases de datos, traduce las
consultas LMD en secuencias de acciones en el nivel físico del sistema de bases de
datos.
Para mediados de 1990 el acceso a una base de datos se logró a través de Internet,
lo que abrió camino hacía nuevas áreas de implementación de los SMBDs; además
permitió la creación de sitios Web más dinámicos, haciendo que Internet ganara
popularidad para el comercio electrónico, sistemas de información, etcétera. En la
década de los noventas el auge de Internet y las bases de datos comienza a integrar
lenguajes como XML (eXtensible Markup Language) en las aplicaciones, además de
que el número de desarrolladores y usuarios aumenta impulsando el uso de los SMBD.
Con el surgimiento de nuevas tecnologías de comunicación inalámbrica y de
dispositivos móviles (DM), se logró el desarrollo de la Computación Móvil (CM) que
se caracteriza por la independencia en localización, movimiento y plataforma en los
dispositivos. Por otra parte, la necesidad de gestionar información desde un ambiente
móvil y la popularidad de las bases de datos, motivó al desarrollo de los Sistemas
Manejadores de Bases de Datos Móviles (SMBDm). En la figura 1 se describe el
desarrollo histórico de los SMBD.
Las bases de datos móviles se consideran las bases de datos de nueva generación,
ya que van dirigidas a sistemas informáticos portátiles como computadoras
personales y dispositivos móviles que se conectan con las estaciones base
(servidores) mediante redes de comunicación digitales inalámbricas, además deben
funcionar mientras estén desconectadas de la red a diferencia de los sistemas de
bases de datos fijos. Las bases de datos móviles utilizan técnicas especiales para la
administración de memoria debido a la capacidad de almacenamiento limitada con la
que cuentan los dispositivos
móviles. Además, el hecho de que se almacenen en el teléfono móvil o computadora
personal permite a los usuarios realizar operaciones sobre la información sin
necesidad de estar conectados a una red, y sincronizar o consultar datos de los
servidores en el momento que se tenga acceso a una conexión inalámbrica. Todas
las funcionalidades de una base de datos y las comunicaciones inalámbricas las
provee un SMBD, cuya arquitectura es descrita en la figura 2.
Para realizar la interconectividad entre el lenguaje de programación java y una base
de datos de mysql, es bastante simple, solo hay que crear un proyecto web utilizando
el IDE Netbeans.
1. Primer paso abrir Netbeans y crear un proyecto nuevo.
package bd;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Angel León Ramos
*/
public class conectar {
public conectar(){
}
}
public ResultSet Buscar(String cadena) {
String sql = cadena;
try {
conectar();
r = s.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return r;
Es importante crear la tabla en la base de datos para poder almacenar los datos, la
tabla se llama evento y tiene la siguiente estructura.
Ahora si en la página hay que escribir los datos que solicitar y hacer clic en el botón
registrar.
Esto recarga la página, pero los datos deben estar en la base de datos, hay que
verificar, al examinar la tabla evento en el gestor de base de datos, se puede ver que
los datos se encuentran registrados.
Ahora hay que agregar un botón para realizar una consulta y que se muestre todos
los datos en la misma página, para ello debajo del código de java del botón registrar
se debe incluir las siguientes líneas.
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.CallableStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.ResultSet"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Acceso a procedimiento almacenado</title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="container-fluid">
<form action="curso.jsp" method="POST">
<div class="row">
<div class="col-sm-4">
<label class="alert-success">Género</label>
<select name="se" required class="form-control">
<option></option>
<option value="H">Masculino</option>
<option value="M">Femenino</option>
</select>
</div>
<div class="col-sm-2">
<br>
<input type="submit" value="Buscar" name="Buscar" class="btn btn-
danger" />
</div>
</div>
<%
int ca = 0;
String gen = "";
if (request.getParameter("Buscar") != null) {
gen = request.getParameter("se");
try {
Class.forName("com.mysql.jdbc.Driver");
ResultSet rs;
//String dir = "H";
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost/primaria", "root", "12345678");
String procedure = "{ call Cursos(?) }";
CallableStatement cs = con.prepareCall(procedure);
cs.setString(1, gen);
rs = cs.executeQuery();
%>
<table class="table table-striped table-hover">
<thead class="thead-green">
<td>Num</td>
<td>Nombre</td>
<td>País</td>
<td>Curso</td>
</thead>
<%
while (rs.next()) {
ca++;
%>
<tr>
<td><%out.print(ca);%></td>
<td><%out.print(rs.getString("nombre"));%></td>
<td><%out.print(rs.getString("pais"));%></td>
<td><%out.print(rs.getString("curso"));%></td>
</tr>
<%
}
rs.close();
con.close();
%>
</table>
<%
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
%>
</form>
</div>
</body>
</html>
Como se puede ver, la página invoca al procedimiento almacenado llamado curso y
pasa como parámetro la selección de la lista desplegable. El resultado es el siguiente: