Conex Java Mysql

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Conex Java Mysql as PDF for free.

More details

  • Words: 2,149
  • Pages: 9

universidad de panam�
facultad de inform�tica electronica y comunicaciones
licenciatura en inform�tica
para la gestion educativa y empresarial

clases y m�todos involucrados en la conexi�n
y consulta de una base de datos mysql
usando java.



introduccci�n:

<pre face="arial" align=justity size="3"> para una clara comprensi�n de lo que sucede y de lo que necesitamos para hacer una conexi�n de una base de datos y para la consulta de la base de dato debemos comprender lo que es odbc. jdbc: es un conjunto de clases para la ejecuci�n de sentencias sql. permite manipular cualquier base de datos sql.

establecer una conexi�n:

<pre align=justity size="3"> lo que debemos hacer para establecer una conexi�n con el controlador de base de datos que queremos utilizar. es aplicar �stos dos pasos:
  1. cargar el driver
  2. hacer la conexi�n

cargar el driver:

m�todo forname():


<pre> �ste m�todo de la clase class se utiliza para cargar el driver o drivers que queremos usar, utilizando s�lo una l�nea de c�digo. si, por ejemplo, queremos utilizar el puente jdbc-odbc, se cargar�a la siguiente l�nea de c�digo.



class.forname("sun.jdbc.odbc.jdbcodbcdriver");

la documentaci�n del driver nos dar� el nombre de la clase a utilizar. por ejemplo, si el nombre de la clase es jdbc.driverxyz, cargar�amos el driver con esta l�nea de c�digo.
class.forname("jdbc.driverxyz");

al hacer esto no necesitamos crear un ejemplar de un driver y registrarlo con el drivermanager porque la llamada a class.forname lo hace autom�ticamente. si hubi�ramos creado nuestro propio ejemplar, crear�amos un duplicado innecesario, pero no pasar�a nada. una vez cargado el driver, se procede a realizar la conexi�n

hacer la conexi�N

drivermanager

<pre>la clase drivermanager permite gestionar todos los drivers instalados en el sistema. m�Todo:

getconnection():

utilizado para realizar la conexi�n a la base de datos para as� poder utilizarla.

ejemplo de su uso:

connection con = drivermanager.getconnection(�url�, "mylogin", "mypassword"); como se puede observar el m�todo getconnection utiliza tres par�metros los cuales son:
  • la direcci�n url
  • el nombre del usuario
  • el password del usuario
la direcci�n url es una sentencia de caracteres que nos dir� donde se encuentra ubicada la base de datos, la cual nos da un puente para poder as� acceder a ella. �sta secuencia de caracteres estar� determinada por el tipo de fuente de datos que utilicemos por ejemplo

si utilizamos la fuente de datos odbc o si utilizamos jdbc, debemos averiguar la sintaxis correcta para tener as� nuestra direcci�n url. login: el nombre del usuario (nombre que se utilizar� para establecer la conexi�n.
password: es la password con la que el usuario acceder� a la base de datos. string dirurl = "jdbc:odbc:fred"; string nombre = �eric�; string contrase�a= �123456�; connection con = drivermanager.getconnection(url, nombre, contrase�a); nota: n�tese que tanto la direcci�n url, login y password pueden definirse con otros nombres ya que solo son conjuntos de caracteres requeridos para establecer la conexi�n a la base de datos. el m�todo getconnection() devuelve un valor para el objeto de tipo connection necesario para verificar que se ha realizado la conexi�n. �ste objeto inicialmente poseer� un valor nulo o null, al realizarse correctamente la conexi�n o sea si el url, login y password son correctos entonces el objeto indicar� un valor diferente del null el cual nos dice que dicha conexi�n se ha realizado correctamente en otro caso permanecer� con un valor null el cual indica que no est� conectado. la conexi�n devuelta por el m�todo drivermanager.getconnection es una conexi�n abierta que se puede utilizar para crear sentencias jdbc que pasen nuestras sentencias sql al controlador de la base de datos. si uno de los drivers que hemos cargado reconoce la url suministada por el m�todo drivermanager.getconnection,dicho driver establecer� una conexi�n con el controlador de base de datos especificado en la url del jdbc. a menos que estemos escribiendo un driver, posiblemente nunca utilizaremos ning�n m�todo del interface driver, y el �nico m�todo de drivermanager que realmente necesitaremos conocer para establecer una conexi�n es el getconnection().

creaci�N y ejecuci�N de la sentencia:

en jdbc existen dos formas principales de ejecutar y crear sentencias sql, la primera es usando un statement, y la segunda es creando un preparedstatement.

clase connection:



representa la conexi�n con la base de datos. es el objeto que permite realizar las consultas sql y obtener los resultados de dichas consultas. es el objeto base para la creaci�n de los objetos de acceso a la base de datos.

m�todo createstatement():

fue la primera manera de enviar sentencias sql usando java, este m�todo est� cada vez m�s en desuso, ya que no protege ante la inyecci�n de c�digo sql. la forma de usarlo seria la siguiente: statement stmt = con.createstatement(); string condicion="nombre='"+nombredelaweb+"' and pass='"+passdelaweb+"'"; //creamos la sentencia sql string sqlselect = "select * from tabla where "+condicion; //ejecutamos la sentencia sql stmt.executequery(sqlselect); nota: observes que si passdelawebes = �' or '1'='1 � tendr�amos una un fallo en la seguridad de la aplicaci�n ya que tendr�a acceso sin saber la contrase�a.

clase statement:

�sta clase utiliza diferentes m�todos los cuales permiten ejecutar diferentes sentencias sql simples, aquellas sentencias que no necesitan par�metros, utilizadas para las consulta de base de datos.

m�todo executequery();

se utiliza para ejecutar consultas sql de tipo select devolviendo como resultado un conjunto de registros de un objeto de la clase resultset. ejemplo: statement s = conn.createstatement (); s.executequery ("select ced, nombre, edad from estudiante"); resultset rs = s.getresultset ();

clase preparedstatement();



es otra forma de crear sentencias sql, esta forma evita la inyecci�n y si la sentencia es m�s larga se entiende mejor. la forma de usarlo es la siguiente: //creamos la sentencia sql string sqlselect = "select * from tabla where nombre=? and pass=?"; //ejecutamos la sentencia sql preparedstatement ps = con.createpreparedstatement(sqlselect); ps.setstring(1,nombredelaweb); ps.setstring(2,passdelaweb); ps.executequery(); obtener los resultados: c�Digo: resultset rs = s.getresultset (); como se muestra en �ste segmento de c�digo, cada vez que ejecutamos una sentencia select tanto el statement como el preparedstatement al hacer el executequery() nos devuelve un objeto de tipo resultset, este objeto como se puede adivinar por el nombre es un set, por lo tanto es iterable.

interfaz resultset

la interfaz resultset proporciona acceso a una tabla de datos. un objeto resultset normalmente se genera ejecutando una sentencia. un objeto resultset mantiene un cursor apuntando hacia su fila de datos actual. inicialmente, el cursor est� colocado delante de la primera fila. el m�todo next() mueve el cursor a la fila siguiente. los m�todos getxxx recuperan valores de columna para la fila actual. puede recuperar valores utilizando el n�mero de �ndice de la columna o el nombre de la columna. en general, la utilizaci�n del �ndice de columnas es m�s eficaz. las columnas se numeran a partir de uno. a continuaci�n se muestra un programa que ase una conexi�n con una base de datos junto con su explicaci�n:

as� se conecta java al driver jdbc de mysql import java.sql.*; 1-la clase publica de conexi�n mysql public class conectamysql { 2- main del programa public static void main (string[] args) { 3- v�ase el paso 5 connection conn = null; 4- una vez conectada al servidor mysql ya podemos darle el nombre del usuario y la contrase�a requerida por el programa eso se hace de la siguiente manera: try { string username = "root"; string password = ""; 5- este es la forma que tiene java de abrir la base de datos donde string url = "jdbc:mysql://localhost/prueba"; jdbc: es el protocolo que estamos utilizando. mysql: es el administrador mysql (a quien lo queremos conectar) localhost: hace referencia que estamos conectado a una base de dato local pero tambi�n podemos conectarnos @156.35.94.6:1521 haciendo referencia al servidor y al puesto que en este caso es 1521. prueba: esto ase referencia al nombre de la base de datos. 6- antes de que el administrador de controladores pueda activar un driver, �ste tiene que estar registrado. una posibilidad para registrarlo es cargando su clase con el m�todo forname y esto se puede hacer de la siguiente manera: class.forname ("com.mysql.jdbc.driver").newinstance (); 7- el administrador de controladores intentar� encontrar uno que use el protocolo especificado por el �url� de la base de datos, recorriendo todos los controladores registrados en �l. se debe lomar en cuenta que como ya esta declarado de tipo connection al principio

del programa pero tambi�n se puede de la forma (connection conn = drivermanager.getconnection (url, username,password);) da igual. conn = drivermanager.getconnection (url, username, password); system.out.println ("conexion database okkk!!!"); 8- en el caso que se haya hecho una conexi�n exitosa a la base de datos el programa ya esta listo para el uso de las tablas de la base de datos. try { //uso de la tabla estudiante 9-en este paso crea el objeto statements que en este caso va a ser la �s� lo necesitamos para manipular los datos de la base de datos. statement s = conn.createstatement (); 10-una vez creado el objeto de la base de datos se procede a especificar la sentencia sql que deseamos ejecutar, o los datos que queremos de la base de datos. tambi�n se debe tomar en cuenta que el m�todo executequery es para lanzar instrucciones select del lenguaje sql. s.executequery ("select ced, nombre, edad from estudiante"); 11- cuando se ejecuta una consulta sql, lo importante es el resultado. el objeto executequery que usamos anteriormente devuelve un objeto de tipo resultset que se puede emplear para procesar las filas del resultado. resultset rs = s.getresultset (); 12- para analizar el conjunto de resultados es necesario un ciclo while que y que se inicialice un contador para saber la cantidad de elementos extra�do de la base de datos. int count = 0; system.out.println ("datos de los estudiantes \n"); while (rs.next ()) { 13-en cada ciclo edadval, nombreval, cedval toma un nuevo valor, esto se hara mientras se hayan le�dos todos los elementos de la base de datos. esta lectura lo hara por campo, por ejemplo en la primera buela del ciclo las variables tomaran los siguientes valores: prueba

edad nombre ced
20 jes�s lee 9-722-1388
30 eric leandro 9-723-2416
34 diaz gabriel 4-5-4554
int edadval = 20 string nombreval = �jesus lee� string cedval = 9-722-1388 en ente programa esto se seguira haciendo mientras halla next o sea siguiente. int edadval = rs.getint ("edad"); string nombreval = rs.getstring ("nombre"); string cedval = rs.getstring ("ced"); 14- es necesario y recomendable imprimir los datos para observar si los datos son los correctos y no hay problema en la lectura. system.out.println ("\n nombre = " + nombreval + "\n cedula = " + cedval + "\n edad = " + edadval ); ++count; } 15-una ves que el resultado haya sido procesado se debe cerrar el statement y eso es lo que es necesario en este programa se hace de la siguiente manera: rs.close (); s.close (); 16- si el usuario desea puede saber las cantidades de registros procesados, esto se hace imprimiendo el contador. system.out.println ("\n registros recuperados...."+ count); } 17- puede darse el caso de que de por algunas razones no podamos tener acceso a la

tabla, entonces es necesario en match para que ejecute los mensaje de errores si no se puede acceder a la base de datos de manera exitosa. catch (exception e) { system.err.println ("problemas con acceso a la tabla"); } } 18- si ocurre algun problema al tratar de conectar con mysql el catch es nesesario para que de aviso del problema al usuario. catch (exception e) { system.err.println ("no puede conectarse al servidor mysql"); } /****************************************************************/ finally { 19- el paso siguiente cierra el statement un caso de que este abierto o conectado o como dice la expresi�n siguiente mientras sea diferente a null. if (conn != null) { try { conn.close (); system.out.println ("\n !!!!!cerrada la coneccion a mysql"); } catch (exception e) { /* sin mensajes de error */ } } } } }.

Related Documents

Conex Java Mysql
November 2019 5
Mysql Y Java
May 2020 3
Mysql I Java
June 2020 3
Mysql
November 2019 51
Mysql
November 2019 43
autores:
eric gonz�lez
jes�s Lee
gabriel diaz
fecha de creaci�n:
17-11-2006