You are on page 1of 6

29/04/14

ODBC - JDBC

JDBC (/JDBC)
Editar 0 (/page/messages/JDBC) 3 (/page/history/JDBC)
(/page/menu/JDBC)

JDBC
DEFINICIN

ParalagentedelmundoWindows,JDBCesparaJavaloqueODBCesparaWindows.Windowsen generalnosabenadaacercadelasbasesdedatos,perodefineelestndarODBCconsistenteenun conjuntodeprimitivasquecualquierdriverofuenteODBCdebesercapazdeentenderymanipular.Los programadoresqueasuvezdeseenescribirprogramasparamanejarbasesdedatosgenricasen WindowsutilizanlasllamadasODBC. ConJDBCocurreexactamentelomismo:JDBCesunaespecificacindeunconjuntodeclasesy mtodosdeoperacinquepermitenacualquierprogramaJavaaccederasistemasdebasesdedatosde formahomognea.Lgicamente,aligualqueODBC,laaplicacindeJavadebeteneraccesoaundriver JDBCadecuado.Estedrivereselqueimplementalafuncionalidaddetodaslasclasesdeaccesoadatos yproporcionalacomunicacinentreelAPIJDBCylabasededatosreal. LanecesidaddeJDBC,apesardelaexistenciadeODBC,vienedadaporqueODBCesuninterfazescrito enlenguajeC,quealnoserunlenguajeportable,haraquelasaplicacionesJavatambinperdiesenla portabilidad.Yadems,ODBCtieneelinconvenientedequesehadeinstalarmanualmenteencada mquinaalcontrarioquelosdriversJDBC,quealestarescritosenJavasonautomticamente instalables,portablesyseguros. 2IMAGEN

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap213.html

odbc.wikispaces.com/JDBC

1/6

29/04/14

ODBC - JDBC

TodalaconectividaddebasesdedatosdeJavasebasaensentenciasSQL,porloquesehace imprescindibleunconocimientoadecuadodeSQLpararealizarcualquierclasedeoperacindebasesde datos.Aunque,afortunadamente,casitodoslosentornosdedesarrolloJavaofrecencomponentes visualesqueproporcionanunafuncionalidadsuficientementepotentesinnecesidaddequeseanecesario utilizarSQL,aunqueparausardirectamenteelJDKsehagaimprescindible.LaespecificacinJDBC requierequecualquierdriverJDBCseacompatibleconalmenoselniveldeentradadeANSISQL92 (ANSISQL92EntryLevel).[1] 2.JDBC(JavaDatabaseConnectivity)esunAPIparatrabajarconbasesdedatosdesdeJava, independientementedelabasededatosalaqueaccedemos. AlahoradeconectarnosaunabasededatosusandoJDBCusamosundriverintermedio,quenoesms queunaclaseofrecidaporelvendedorqueimplementalainterfazDriver.Cuandosecreaunainstanciade unadeestasclasesDriver,estaseregistraconelDriverManager(gestordedrivers)queeslaencargada dedecidirqudriversehadeutilizarparaaccederatalocualBBDD.Eldriverparatrabajarconbasesde datosMySQL,porejemplo,escom.mysql.jdbc.Driver.[2] AccesodeJDBCaBasesdeDatos ElAPIJDBCsoportadosmodelosdiferentesdeaccesoaBasesdeDatos,losmodelosdedosytres capas. Modelodedoscapas EstemodelosebasaenquelaconexinentrelaaplicacinJavaoelappletqueseejecutaenel navegador,seconectandirectamentealabasededatos. Imagen3

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21 3.html EstosignificaqueeldriverJDBCespecficoparaconectarseconlabasededatos,deberesidirenel sistemalocal.Labasededatospuedeestarencualquierotramquinayseaccedeaellamediantelared. EstaeslaconfiguracindetpicaCliente/Servidor:elprogramaclienteenvainstruccionesSQLalabase dedatos,stalasprocesayenvalosresultadosdevueltaalaaplicacin. Modelodetrescapas Enestemodelodeaccesoalasbasesdedatos,lasinstruccionessonenviadasaunacapaintermedia entreClienteyServidor,queeslaqueseencargadeenviarlassentenciasSQLalabasededatosy recogerelresultadodesdelabasededatos.Enestecasoelusuarionotienecontactodirecto,niatravs

odbc.wikispaces.com/JDBC

2/6

29/04/14

ODBC - JDBC

delared,conlamquinadonderesidelabasededatos. IMAGEN4

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21 3.html Estemodelopresentalaventajadequeelnivelintermediomantieneentodomomentoelcontroldeltipode operacionesqueserealizancontralabasededatos,yadems,estlaventajaadicionaldequelosdrivers JDBCnotienenqueresidirenlamquinacliente,locualliberaalusuariodelainstalacindecualquiertipo dedriver.[1] 3.LaconectividaddelabasededatosdeJava(JDBCJavaDatabaseConnectivity)esunmarcode programacinparalosdesarrolladoresdeJavaqueescribenlosprogramasquetienenaccesoala informacinguardadaenbasesdedatos,hojasdecalculo,yarchivos"planos".JDBCseutiliza comnmenteparaconectarunprogramadelusuarioconunabasededatospordetrsdelaescena,sin importarqusoftwaredeadministracinomanejodebasededatosseutiliceparacontrolarlo.[3] USANDOELPROGRAMAPILOTODEJDBC Sinimportarlalocalizacin,laplataforma,oelprogramapilotodelafuentededatos(Oracle,Microsoft, etc.),elJDBCseconectaconunafuentededatosmenosdifcilproporcionandoaunacoleccinde extensiones(class)quecontienenlosdetallesabstractosdelainteraccindelabasededatos.La ingenieradelsoftwareenlosprogramasconJDBCtambinconducealareutilizacindelmdulo.Los programaspuedenfcilmenteinsertadosendiferentesinfraestructurasparasualmacenamientodedatos You are not a member of this wiki. Join now (http://odbc.wikispaces.com/space/join) Dismiss (cualquierplataformaustedelijautilizarenelfuturo)consolosustituirelprogramapilotooJDBCdriver. Mientrasustedsemanejaconlasplataformasmspopularesenbasededatos(talescomoOracle, Informix,Microsoft,MySQL,etc.),hayunprogramapilotodeJDBCescritoquepermitequelosprogramas puedanconectarseymanipularlosdatos.UstedpuededescargarunprogramapilotoespecficodeJDBC delfabricantedesusistemadeadministracindebasededatos(DBMS)odeterceros(enlacajadelos productosabiertosmenospopulares).ElprogramapilotodeJDBCparasubasededatosvendrcon instruccionesespecficasdehacerlosarchivosdeltipoclassdelprogramapilotodisponibleparalaJVMo MquinaVirtualdeJava,quevaahacerfuncionarsuprograma.LosprogramaspilotosdeJDBCutilizanel

odbc.wikispaces.com/JDBC

3/6

29/04/14

ODBC - JDBC

builtindeJavaDriverManagerparaabriryteneraccesoaunabasededatosdentrodesuprogramade Java. JDBC(JavaDataBaseConnectivity =conectividadjavaabasesdedatos)esunconjuntodeclasese interfacesescritosenJavaqueofrecenunaAPIcompletaparalaprogramacindebasesdedatosde diferentesproveedores(MicrosoftSQLServer,Oracle,MySQL,Interbase,MicrosoftAccess,IBMDB2, PostgreSQL,etc...)usandoinstruccionesSQL(StructuredQueryLanguage=Lenguajeestructuradode consultas). JDBCrealizavariasfunciones: 1. 2. 3. 4. conectaconlabasededatoslaBDpuedeserlocal(ennuestroPC)oremota(enotroPC) envalassentenciasSQL manipulalosregistrosdelaBD recogeelresultadodelaejecucindelassentenciasSQL[3]

JDBCvsODBC JDBCdifieredeODBC(conectividadabiertaabasesdedatos),APIdeMicrosoftmuyutilizadapara accederaBDdediferentesproveedoresdesdemltiplesplataformas: 1. 2. 3. 4. ODBCestescritoenC elgestordedriversODBCyelpropiodriverhandeserinstaladosentodoslosordenadores JDBCestescritoenJavaypermiteobteneraplicacionescompletasenJava(100%purejava) usandoODBCenBDgrandes,elrendimientopuededisminuiralconvertirllamadasJavaaCy viceversa

ClasesymtodosdeJDBC JDBCutilizalosmismosmtodosyclasesindependientementedeldriverusadoparaconectaral proveedordeBD,loquecambiaeselnombredeldriverporloqueesbastantesencillomodificar aplicacionesalcambiardeproveedor.ElcdigogenricodeconexinaunaBDes: RegistrareldriverJDBCusandoelcargadordeclasesClass.forName: Class.forName("nombre_del_driver") ConectaralaBDusandolainterfazConnectionqueabreunasesinoconexinconlaBD especificaday,medianteelmtodoDriverManager.getConnection,intentaseleccionareldriver apropiadodeentrelosqueJDBCtengaregistradosenelsistema: Connectioncon=DriverManager.getConnection("BD_url","usuario","password") EjecutarsentenciasSQLlainterfazStatementpermiteejecutarlasinstruccionesSQLydevolverel resultadogenerado: Statementselect=con.createStatement() LainterfazResultSetrepresentaunconjuntodedatosresultadodeunaconsultaSQL,paraacceder alosregistrosseempleauncursorqueinicialmenteapuntaantesdelprimerregistroyparaavanzar porlosregistrosseempleaelmetodoResultSet.next().ResultSetesdeslolectura: ResultSetnombres=select.executeQuery("SELECT*FROMTablaORDERBYId") LasconsultasStatementtienenmtodosdiferentessegneltipodeinstruccinSQLempleada:

odbc.wikispaces.com/JDBC

4/6

29/04/14

ODBC - JDBC

executeQuery(Stringsql):devuelveunobjetoResultSet executeUpdate(Stringsql):ejecutaunainstrucciondetipoINSERT,UPDATEoDELETE JDBCpuedeusarvariosdrivers,entreelloslosmsimportantesson: MicrosoftSQLServer(sedescargadesdelawebdeMicrosoft,esuncontroladorJDBCde SQLServer2005ydeSQLServer2000setratadeuncontroladorJDBCdeTipo4que proporcionaconectividaddebasededatosatravsdelasAPIJDBCestndardisponiblesen J2EEJava2EnterpriseEdition: Class.forName:com.microsoft.jdbc.sqlserver.SQLServerDriver Connection:jdbc:microsoft:sqlserver:<HOST>:<puerto>DatabaseName=[nombre_BD]User= [usuario]Password=[password] JDBCODBCBridge(puenteconODBC,sirveparaconectarconBDdeMicrosoftAccess): Class.forName:sun.jdbc.odbc.JdbcOdbcDriver Connection:jdbc:odbc:<ruta_a_la_BD> LaconexinconlaBDdeMicrosoftAccesspuederealizarsede2maneras: configurandolaBDcomoDSNdeSistemaenelPaneldecontrolODBC /*cadenadeconexion:AccessBDeselnombreconelquesehaconfigurado *laconexionalaBDenelpaneldecontrolODBC*/ Stringurl="jdbc:odbc:AccessBD" usandolarutafsicaalaBDenlacadenadeconexin(nohacefaltaconfigurarlaenel PaneldecontrolODBC): cadenadeconexionconlarutafisicaalaBD Stringdb="D:\\Carpeta\\Subcarpeta\\Subcarpeta\\base_de_datos.mdb" silaBDestaenlacarpetadelaaplicacionJavaseescribe Stringdb="base_de_datos.mdb" Stringurl="jdbc:odbc:MSAccessDatabaseDBQ="+db MySQL(driverMM.MySQL): Class.forName:org.gjt.mm.mysql.Driver Connection:jdbc:mysql://<HOST>:<puerto>/<BD> [4]

BIBLIOGRAFIA [1]http://www.dcc.uchile.cl/~lmateu/CC60H/Trabajos/jfernand/ [2]http://mundogeek.net/archivos/2007/01/27/jdbc/ [3]http://www.acm.org/crossroads/espanol/xrds73/ovp_marzo2001.html [4]http://md2.dei.inf.uc3m.es:8000/PA/Practicas/p2.pdf

odbc.wikispaces.com/JDBC

5/6

29/04/14

ODBC - JDBC

AyudaAcercadeBlogPrecioPrivacidadTrminosApoyo Elevardecategora Contributionstohttp://odbc.wikispaces.com/arelicensedunderaCreativeCommonsAttributionShareAlike 3.0License. PortionsnotcontributedbyvisitorsareCopyright2014TangientLLC

odbc.wikispaces.com/JDBC

6/6

You might also like