Vous êtes sur la page 1sur 52

CLIENTE SERVIDOR

UNIDADES DE LA MATERIA

1. ACCESO A BASE DE DATOS CON JAVA

2. TRANSACCIONES EN BASE DE DATOS DISTRIBUIDAS

2. ACCESO A BASE DE DATOS CON TECNOLOGIA MOVIL

CRITERIOS DE ACREDITACION Y EVALUACION

1. Asistencia obligatoria a clases de acuerdo con el reglamento que rige al alumno. 10% 2. Cumplir con los trabajos prcticos desarrollados en clase 10% 3. Ejercicios prcticos por unidad 40% 4. Examen por unidad 40%

UNIDAD 1. ACCESO A BASE DE DATOS CON JAVA

MySql

ACCESO A DATOS CON JAVA

Sql server

otros

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java)


JDBC es un API incluido dentro del lenguaje Java para el acceso a bases de datos. Consiste en un conjunto de clases e interfaces escritos en Java que ofrecen un completo API para la programacin de bases de datos, por lo tanto es la una solucin 100% Java que permite el acceso a bases de datos, la primera aparicin de JDBC (JDBC 1.0) se encuentra dentro del paquete java.sql que ha fue incorporado en la versin del JDK 1.1.x (Java Development Kit) correspondiente a la versin 1.1 del lenguaje Java, JDBC 2.0 sigue estando en el mismo paquete pero en las versiones JDK 1.2 y JDK 1.3 que se corresponden con la versin 2 del lenguaje Java, o tambin denominada plataforma Java 2 (Java 2 Platform). JDBC es independiente de la plataforma al estar escrito en Java.

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) :Funciones


Bsicamente el API JDBC hace posible la realizacin de las siguientes tareas: Establecer una conexin con una base de datos. Enviar sentencias SQL. Manipular los datos. Procesar los resultados de la ejecucin de las sentencias.

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) :Caractersticas de JDBC


JDBC es una API de bajo nivel ya que hace llamadas SQL directas, Sun desea que JDBC pueda ser llamado desde otra API de ms alto nivel que pueda simplificar la labor del programador, aunque la utilizacin de JDBC es sencilla y potente. Se tiene noticia de que ya existen diversos proyectos en marcha que intentan crear estas APIs de alto nivel. Aqu el trmino API hace referencia a un conjunto de clases e interfaces. Una forma de ver las caractersticas de JDBC es enfrentarlo con otro API que permita tambin el acceso a bases de datos, uno de los ms usados y extendidos es el API de Microsoft ODBC (Open DataBase Connectivity).

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) :Caractersticas de JDBC


ODBC permite la conexin a casi todo tipo de bases de datos en casi todas las plataformas, por lo tanto porqu no podemos simplemente usar ODBC desde Java?. El hecho es que se puede utilizar ODBC desde Java, pero a travs de JDBC con lo que se denomina el puente JDBC-ODBC (JDBCODBC Bridge, desarrollado por Sun e Intersolv). En este momento la pregunta se transforma en para qu necesitamos entonces JDBC?, hay varias respuestas para esta pregunta:
1. Usar ODBC directamente desde Java no es apropiado ya que usa un interfaz en C, y las llamadas desde Java a cdigo nativo de C pueden ocasionar diversos problemas de seguridad y en la portabilidad de las aplicaciones. 2. Una traduccin literal del API de ODBC escrito en C no es adecuado, ya que, Java no utiliza punteros y sin embargo ODBC hace un uso bastante frecuente de ellos. Se puede considerar que JDBC es una traduccin de ODBC a un interfaz de programacin orientada a objetos que es natural para los programadores de Java.

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) :Caractersticas de JDBC

3. ODBC es ms complicado de aprender, mezcla caractersticas sencillas con avanzadas y tiene opciones complejas incluso para las consultas ms sencillas.
4. JDBC es necesario para disponer de una solucin Java pura (100% pure Java). Cuando se utiliza ODBC el gestor de drivers y los drivers deben ser instalados manualmente en cada mquina cliente. Mientras que JDBC est escrito completamente en Java y su cdigo se instala automticamente.

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Modelos de dos y tres capas
JDBC permite los modelos de dos y tres capas para el acceso a bases de datos. En el modelo de dos capas (two-tier), una aplicacin o un applet Java se comunica directamente con la base de datos. Requiere un driver JDBC que se pueda comunicar con el sistema gestor de bases de datos al que se accede. Las sentencias SQL del usuario son enviadas a la base de datos, y los resultados de la ejecucin de estas sentencias son devueltos al usuario. La base de datos puede estar en otra mquina a la que el usuario accede a travs de la red (Internet o Intranet). Esta es una arquitectura cliente/servidor, con la mquina del usuario como cliente y la mquina que contiene a la base de datos como servidor.

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Modelos de dos y tres capas
Aplicacin/Applet JDBC

CLIENTE

Protocolo del SGBD

SGBD

SERVIDOR

Fig. Modelo de dos capas

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Modelos de dos y tres capas
CLIENTE Peticiones http

Applet

Aplicacin
JDBC

Servidor (lgica de negocio o capa intermedia) Protocolo propietario del SGBD

SGBD

Servidor de la base de datos

Fig. Modelo de tres capas

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Ejemplo de aplicacin


Importar la base de datos Books.sql

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Ejemplo de aplicacin


Crear el script de la base de datos Books.
Books.sql
DROP DATABASE IF EXISTS books; CREATE DATABASE books; USE books; CREATE TABLE Authors ( AuthorID int NOT NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(30) NOT NULL, LastName varchar(30) NOT NULL ); CREATE TABLE Titles ( ISBN varchar(20) NOT NULL PRIMARY KEY, Title varchar(100) NOT NULL, EditionNumber int NOT NULL, Copyright varchar(4) NOT NULL ); CREATE TABLE AuthorISBN ( AuthorID int NOT NULL, ISBN varchar(20) NOT NULL, FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID), FOREIGN KEY (ISBN) References Titles(ISBN) );

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Ejemplo de aplicacin


Continuacin Books.sql
INSERT INTO Authors (FirstName,LastName) VALUES ('Harvey','Deitel'); INSERT INTO Authors (FirstName,LastName) VALUES ('Paul','Deitel'); INSERT INTO Authors (FirstName,LastName) VALUES ('Andrew','Goldberg'); INSERT INTO Authors (FirstName,LastName) VALUES ('David','Choffnes'); INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0131869000','Visual Basic 2005 How to Program',3,'2006'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0131869000'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0131869000'); INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0131525239','Visual C# 2005 How to Program',2,'2006'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0131525239'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0131525239');

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132222205','Java How to Program',7,'2007'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132222205'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132222205');
INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0131857576','C++ How to Program',5,'2005'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0131857576'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0131857576'); INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132404168','C How to Program',5,'2007'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132404168'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132404168');

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Ejemplo de aplicacin


Continuacin Books.sql
INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0131450913','Internet & World Wide Web How to Program',3,'2004'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0131450913'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0131450913'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (3,'0131450913'); INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0131828274','Operating Systems',3,'2004'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0131828274'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0131828274'); INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (4,'0131828274');

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Instalar Appserver e importar el script con
phpMyadmin

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Seleccionar la opcin Importar

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Seleccionar en Browse el archivo Books.sql y pulsar continuar

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Ver el resultado satisfactorio de la importacin

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Instalacin del conector de java para mysql. Instalar jdk1.6 y realizar los pasos
1. Descargar el conector de java para Mysql. El archivo mysql-connector-java-5.0.4.zip puede ser en la siguiente pgina http://dev.mysql.com 2. Descomprimir el archivo. Todo el contenido queda en la siguiente carpeta c:\mysql-connector-java-5.0.4 3. Copiar los archivos siguientes Archivos ejecutables jar c:\mysql-connector-java-5.0.4\mysql-connector-java-5.0.4-bin.jar Y c:\mysql-connector-java-5.0.4\src\lib\aspectjrt.jar en el subdirectorio siguiente donde se instal java. Por ejemplo C:\Program Files\Java\jdk1.6.0\jre\lib\ext 4. Como ltimo paso En variables de entorno de windows (panel de control) agregar la siguiente variable del sistema nombre de la variable : CLASSPATH valor de la variable C:\Program Files\Java\jdk1.6.0\jre\lib\ext\mysql-connector-java-5.0.4-bin.jar; Listo Para mayor referencia del ejemplo anexo. Consultar el libro Java como programar Deitel Ed. Prentice hall/pearson

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Jerarqua de clases para acceso a datos
DriverManager Connection Statement
ResultSet
ResultSetMetaData // JDBC driver name and database URL static final String DRIVER = "com.mysql.jdbc.Driver"; static final String DATABASE_URL = "jdbc:mysql://localhost/books";

//declaracion de variables Connection connection = null; // manages connection Statement statement = null; // query statement ResultSet resultSet = null; // manages results ResultSetMetaData metaData =null;

//Mtodos invocados
connection=Drivermanager.getConnection(urldb,uid,pwd);

statement=connection.createStatement(); Resultset=statement.executeQuery(sql);
ResultSetMetaData metaData = resultSet.getMetaData();

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Jerarqua de clases para acceso a datos
Connection Statement ResultSet
ResulSetMetaData

connection = DriverManager.getConnection( DATABASE_URL, "root", "123" );

statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT authorID, firstName, lastName FROM authors" ); ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount();

While(resultSet.next()){..}

resultSet.getObject(i)

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin lectura de datos (netbeans).
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplication7; // Displaying the contents of the authors table. import java.sql.Connection; import java.sql.Statement; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; /** * * @author dehecab */ public class Main { /** * @param args the command line arguments */ // JDBC driver name and database URL static final String DRIVER = "com.mysql.jdbc.Driver"; static final String DATABASE_URL = "jdbc:mysql://localhost/books"; public static void main(String[] args) { // TODO code application logic here Connection connection = null; // manages connection Statement statement = null; // query statement ResultSet resultSet = null; // manages results

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin en netbeans.


// connect to database books and query database try { // load the driver class Class.forName( DRIVER ); // establish connection to database connection = DriverManager.getConnection( DATABASE_URL, "root", "123" ); //DriverManager.getConnection( DATABASE_URL, "jhtp7", "jhtp7" ); // create Statement for querying database statement = connection.createStatement(); // query database resultSet = statement.executeQuery("SELECT authorID, firstName, lastName FROM authors" ); // process query results ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); System.out.println( "Authors Table of Books Database:\n" ); for ( int i = 1; i <= numberOfColumns; i++ ) System.out.printf( "%-8s\t", metaData.getColumnName(i)); System.out.println(); while ( resultSet.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ) System.out.printf( "%-8s\t", resultSet.getObject( i ) ); System.out.println(); } // end while } // end try

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin en netbeans.


catch ( SQLException sqlException ) { sqlException.printStackTrace(); } // end catch catch ( ClassNotFoundException classNotFound ) { classNotFound.printStackTrace(); } // end catch finally // ensure resultSet, statement and connection are closed { try { resultSet.close(); statement.close(); connection.close(); } // end try catch ( Exception exception ) { exception.printStackTrace(); } // end catch } // end finally

} }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin en netbeans. modelo
J2ME (ModelA)
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package moviljdbc; /** * * @author Jdehesa */ import java.sql.*; public class ModelA { private Connection connection; private Statement statement; private ResultSet resultSet; public ModelA () { String url = "jdbc:mysql://localhost/books"; String userID = "root"; String password = "123"; try { Class.forName( "com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(url,userID,password); } catch (ClassNotFoundException error) { System.err.println("Unable to load the JDBC/ODBC bridge." + error); System.exit(1); }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin en netbeans. modelo
J2ME (ModelA)
catch (SQLException error) { System.err.println("Cannot connect to the database. "+ error); if(connection != null) { try { connection.close(); } catch(SQLException er){} } System.exit(2); } try { // insert example code here //desactivar transacciones automticas if (connection.getAutoCommit() ) connection.setAutoCommit( false ); // create Statement for querying database statement = connection.createStatement(); // query database resultSet = statement.executeQuery("SELECT authorID, firstName, lastName FROM authors" ); // process query results ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); System.out.println( "Authors Table of Books Database:\n" );

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin en netbeans. modelo
J2ME (ModelA)
for ( int i = 1; i <= numberOfColumns; i++ ) System.out.printf( "%-8s\t", metaData.getColumnName(i)); System.out.println(); while ( resultSet.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ) System.out.printf( "%-8s\t", resultSet.getObject( i ) ); System.out.println(); } // end while connection.commit(); } catch ( SQLException error ) { System.err.println("SQL error." + error); if(connection != null) { try { connection.close(); } catch(SQLException er){} } System.exit(3); } if(connection != null) { try { connection.close(); } catch(SQLException er){} } } public static void main ( String args [] ) { final ModelA sql1 = new ModelA (); System.exit ( 0 ) ; } }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : import java.net.*; paquete que contiene
todas las clases relacionadas con los sockets y comunicaciones a travs de Internet
package javaapplication8; import java.net.*; public class ConexionSocket { /** * @param args the command line arguments */ public static void main(String[] args) { //nombre del servidor String servidor="localhost"; //puerto en el que escucha int puerto=80; String mensaje1=""; String mensaje2=""; try{ //se establece la conexin con el servidor de Mysql //en el puerto 80 Socket sock=new Socket(servidor,puerto); //se obtiene la direccin IP de la mquina a la que nos //hemos conectado String dirIP=sock.getInetAddress().toString(); //se cierra el socket sock.close(); mensaje1="Se abri y cerr el socket sin problemas."; mensaje2="En la direccin "+dirIP; }

Ejemplo de socket para obtener la direccin IP de un servidor

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : import java.net.*; paquete que contiene
todas las clases relacionadas con los sockets y comunicaciones a travs de Internet
catch(Exception e){ //se captura cualquier excepcin que se produzca mensaje1="Se produjo la excepcin " + e; mensaje2="mientras se abra el socket con el puerto "; mensaje2+=puerto+" en la URL "+servidor; } //Se muestra el resultado de la prueba System.out.println(mensaje1); System.out.println(mensaje2); } }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : import java.net.*; import java.applet.*; import java.awt.*; ejemplo de socket usando applet
package javaapplication11; import java.applet.*; import java.net.*; import java.awt.*; public class ConexionSocket extends Applet{ /** * @param args the command line arguments */ //nombre del servidor String servidor="localhost"; //puerto en el que escucha int puerto=80; String mensaje1=""; String mensaje2=""; //public static void main(String[] args) { public void init(){ try{ //se establece la conexin con el servidor de mysql //en el puerto 80 Socket sock=new Socket(servidor,puerto); //se obtiene la direccin IP de la mquina a la que nos //hemos conectado String dirIP=sock.getInetAddress().toString(); //se cierra el socket sock.close(); mensaje1="Se abri y cerr el socket sin problemas."; mensaje2="En la direccin "+dirIP; }

Una applet es un fichero de clase que se escribe especficamente para visualizar grficos en la red Internet

Ejemplo de socket para obtener la direccin IP de un servidor usando el applet graphics para mostrar los mensajes

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : import java.net.*; import java.applet.*; import java.awt.*; ejemplo de socket usando applet

catch(Exception e){ //se captura cualquier excepcin que se produzca mensaje1="Se produjo la excepcin " + e; mensaje2="mientras se abra el socket con el puerto "; mensaje2+=puerto+" en la URL "+servidor; } //Se muestra el resultado de la prueba //System.out.println(mensaje1); //System.out.println(mensaje2); //se llama al mtodo paint() del applet repaint(); } //muestra los mensajes correspondientes public void paint(Graphics graphics){ graphics.drawString(mensaje1,10,20); graphics.drawString(mensaje2,10,30); } }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Conexin a una base de datos de sql server (200x) mediante el puente jdbc-odbc

/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package conexionodbcsqlserver; import java.sql.*; /** * * @author JDEHESA */ public class ConexionODBC { //Atributos de la clase String sURL; Connection conexion=null; Statement statement = null; ResultSet resultSet = null; public ConexionODBC(String url){ this.sURL=url; }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Conexin a una base de datos de sql server (200x) mediante el puente jdbc-odbc

public static void main( String args[] ){ //Creamos una instancia de la clase ConexionODBC aplicacion=new ConexionODBC("jdbc:odbc:bookssqlserver;UID=root;PWD=123"); try{ aplicacion.realizaConexion(); }catch(Exception ex){ System.out.println("Se han producido excepciones: "+ex); } }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Conexin a una base de datos de sql server (200x) mediante el puente jdbc-odbc

public void realizaConexion() throws Exception{ //Carga del driver jdbc-odbc bridge que ofrece Java Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // conectamos a la base de datos conexion=DriverManager.getConnection(sURL); System.out.println("Se ha establecido la conexin con: "+sURL); statement = conexion.createStatement(); //resultSet = statement.executeQuery("SELECT ISBN, Title, EditionNumber,Copyright FROM Titles" ); resultSet = statement.executeQuery("SELECT * FROM Authors" ); ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); System.out.println( "Tabla Titles de la base de datos Books:\n" ); for ( int i = 1; i <= numberOfColumns; i++ ){ if(i==2) System.out.printf( "%-35s\t", metaData.getColumnName(i)); else System.out.printf( "%-8s\t", metaData.getColumnName(i)); } System.out.println();

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Conexin a una base de datos de sql server (200x) mediante el puente jdbc-odbc

while ( resultSet.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ){ if(i==2) System.out.printf( "%-40s\t", resultSet.getObject( i ) ); else System.out.printf( "%-8s\t", resultSet.getObject( i ) );} System.out.println(); } conexion.close(); System.out.println("Se ha cerrado la conexin con: "+sURL); } }

Leccin : Introduccin a JDBC (Conectividad de base de datos de Java) : Jerarqua de clases para acceso a datos (insert)
connection statement resultSet
metaData

connection = DriverManager.getConnection( DATABASE_URL, "root", "123" );

statement = connection.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); resultSet = statement.executeUpdate(INSERT INTO authors (authorID, firstName, lastName) VALUES (25,JULIO,DEHESA)" );
ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount();

While(resultSet.next()){..}

resultSet.getObject(i)

Ejemplo 1 : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin escritura de datos (netbeans).
escuela.sql
DROP DATABASE IF EXISTS Escuela; CREATE DATABASE Escuela; USE Escuela; CREATE TABLE Calificaciones ( NControl int NOT NULL AUTO_INCREMENT, ClvMateria nvarchar(4) NOT NULL, PRIMARY KEY(NControl,ClvMAteria), Periodo nvarchar(20) NOT NULL, ClvGrupo nvarchar(2) NOT NULL, cu1 float NOT NULL, cu2 float NOT NULL, cu3 float NOT NULL, cu4 float NOT NULL, cu5 float NOT NULL )

Ejemplo1 : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin escritura de datos (netbeans).
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bdescuela; import java.sql.Connection; import java.sql.Statement; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import javax.swing.*; /** * * @author Jdehesa */ public class Main { static final String DRIVER = "com.mysql.jdbc.Driver"; static final String DATABASE_URL = "jdbc:mysql://localhost/escuela";

Ejemplo1 : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin escritura de datos (netbeans).
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here // TODO code application logic here Connection connection = null; // manages connection Statement statement = null; // query statement ResultSet resultSet = null; // manages results // connect to database books and query database try { // load the driver class Class.forName(DRIVER); // establish connection to database connection = DriverManager.getConnection( DATABASE_URL, "root", "123" ); //DriverManager.getConnection( DATABASE_URL, "jhtp7", "jhtp7" ); // create Statement for querying database statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCU R_UPDATABLE);

Ejemplo 1 : Introduccin a JDBC (Conectividad de base de datos de Java) : Codificacin escritura de datos (netbeans).
int num = statement.executeUpdate("INSERT INTO calificaciones (NControl,ClvMateria,Periodo,ClvGrupo,cu1,cu2,cu3,cu4,cu5) VALUES(1,'PRM1','1ER SEMESTRE','1A',80,75,90,80,100)"); int num1 = statement.executeUpdate("INSERT INTO calificaciones (NControl,ClvMateria,Periodo,ClvGrupo,cu1,cu2,cu3,cu4,cu5) VALUES(1,'BDS1','1ER SEMESTRE','1A',70,95,97,84,88)"); int num2 = statement.executeUpdate("INSERT INTO calificaciones (NControl,ClvMateria,Periodo,ClvGrupo,cu1,cu2,cu3,cu4,cu5) VALUES(2,'PRM1','1ER SEMESTRE','1A',94,87,86,80,81)"); int num3 = statement.executeUpdate("INSERT INTO calificaciones (NControl,ClvMateria,Periodo,ClvGrupo,cu1,cu2,cu3,cu4,cu5) VALUES(2,'BDS1','1ER SEMESTRE','1A',80,83,91,92,88)"); // query database resultSet = statement.executeQuery("SELECT NControl,ClvMateria,Periodo,ClvGrupo,cu1,cu2,cu3,cu4,cu5 FROM calificaciones" );
// process query results ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); System.out.println( "Tabla Calificaciones de la base de datos Escuela:\n" ); for ( int i = 1; i <= numberOfColumns; i++ ) System.out.printf( "%-8s\t", metaData.getColumnName(i)); System.out.println();

Ejemplo 1 : Cont. escritura de datos (netbeans).


while ( resultSet.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ) System.out.printf( "%-8s\t", resultSet.getObject( i ) ); System.out.println(); } // end while } // end try catch ( SQLException sqlException ) { sqlException.printStackTrace(); } // end catch catch ( ClassNotFoundException classNotFound ) { classNotFound.printStackTrace(); } // end catch finally // ensure resultSet, statement and connection are closed { try { resultSet.close(); statement.close(); connection.close(); } // end try catch ( Exception exception ) { exception.printStackTrace(); } // end catch } // end finally } }

PRACTICA 1: CONEXIN A MYSQL DESDE JSP


Una aplicacin web con tecnologa de programacin JSP puede ser creada desde netbeans. Realizar los pasos siguientes:

1. Agregar un nuevo proyecto, seleccionando la categora Java Web y el proyecto Web Application.

PRACTICA1: CONEXIN A MYSQL DESDE JSP


2. Especificar el nombre del proyecto

PRACTICA: CONEXIN A MYSQL DESDE JSP


3. Seleccionar el servidor web (GlassFish Server3 o Tomcat 6.0)

PRACTICA1: CONEXIN A MYSQL DESDE JSP


Importar las libreras para el acceso a datos <%@page import="java.sql.*"%> Estructura bsica de un documento HTML <html> <head><title>Conexin</title></head> <body> .. </body> </html>

PRACTICA1: CONEXIN A MYSQL DESDE JSP


Insercin de cdigo <body></body>. <body> <% codigo jsp .. %> </body> Visualizacin de mensajes en el browser para el control de errores <body>
<%="Se produjo una excepcin durante la conexin:"+ex%>

en

el

cuerpo

del

documento

</body>

Visualizacin de mensajes en el browser con librera conocida


<body>
out.println("Conexin realizada con xito a: "+conexion.getCatalog());

</body>

PRACTICA1: CONEXIN A MYSQL DESDE JSP


3. Realizar la codificacin en el archivo index.jsp
<%@page import="java.sql.*"%> <html> <head><title>Conexin</title></head> <body> <% try{ //Se registra el driver Class.forName("com.mysql.jdbc.Driver"); //Driver driver=new com.inet.tds.TdsDriver(); //Realizacin de la conexin Connection conexion=DriverManager.getConnection("jdbc:mysql://localhost/books","root", "123"); out.println("Conexin realizada con xito a: "+conexion.getCatalog()); conexion.close(); } catch(SQLException ex){ //Se captura la excepcin de tipo SQLException que se produzca%> <%="Se produjo una excepcin durante la conexin:"+ex%> <%} catch(Exception ex){ //Se captura cualquier tipo de excepcin que se produzca%> <%="Se produjo una excepcin: "+ex%> <%}%> </body> </html>

PRACTICA2: CONEXIN A SQL SERVER DESDE JSP


Realizar la codificacin en el archivo index.jsp
<%@page import="java.sql.*"%> <html> <head><title>Conexin</title></head> <body> <% try{ //Se registra el driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //Driver driver=new com.inet.tds.TdsDriver(); //Realizacin de la conexin Connection conexion=DriverManager.getConnection("jdbc:odbc:bookssqlserver;UID=root;PWD=123"); out.println("Conexin realizada con xito a: "+conexion.getCatalog()); conexion.close(); } catch(SQLException ex){ //Se captura la excepcin de tipo SQLException que se produzca%> <%="Se produjo una excepcin durante la conexin:"+ex%> <%} catch(Exception ex){ //Se captura cualquier tipo de excepcin que se produzca%> <%="Se produjo una excepcin: "+ex%> <%}%> </body> </html>

PRACTICA3: Realizar una consulta general sobre la tabla authors, base de datos mysql: books
<%@page import="java.sql.*"%> <html> <head><title>Conexin</title></head> <body> <%try{ //Se registra el driver jdbc para mysql Class.forName("com.mysql.jdbc.Driver"); //Driver driver=new com.inet.tds.TdsDriver(); //Realizacin de la conexin Connection conexion=DriverManager.getConnection("jdbc:mysql://localhost/books","root", "123"); out.println("Conexin realizada con xito a: "+conexion.getCatalog()); Statement statement = conexion.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT authorID, firstName, lastName FROM authors" ); // process query results ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); out.println( "Authors Table of Books Database:<br>" ); for ( int i = 1; i <= numberOfColumns; i++ ) out.print(metaData.getColumnName(i)+ " "); out.println("<br>"); while ( resultSet.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ) out.print( resultSet.getObject( i )+ " " ); out.println("<br>"); } // end while conexion.close(); }

PRACTICA3: Realizar una consulta general sobre la tabla authors, base de datos mysql: books
catch(SQLException ex){ //Se captura la excepcin de tipo SQLException que se produzca%> <%="Se produjo una excepcin durante la conexin:"+ex%> <%} catch(Exception ex){ //Se captura cualquier tipo de excepcin que se produzca%> <%="Se produjo una excepcin: "+ex%> <%}%> </body> </html>

Vous aimerez peut-être aussi