Escolar Documentos
Profissional Documentos
Cultura Documentos
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]
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]
odbc.wikispaces.com/JDBC
5/6
29/04/14
ODBC - JDBC
odbc.wikispaces.com/JDBC
6/6