Acessando banco de dados em Java (PARTE 1) - Java Free.pdf
-
Upload
anderson-martins -
Category
Documents
-
view
214 -
download
2
Transcript of Acessando banco de dados em Java (PARTE 1) - Java Free.pdf
-
Assine08007033000 SAC Batepapo Email Notcias Esporte Entretenimento Mulher Shopping BUSCAR
2,9milCurtir 131 Seguir@javafree
Login Registrese
Home>Artigos>BancodeDados>
AcessandobancodedadosemJava(PARTE1)Publicadopordaltoncamargoem17/08/20091.021.299visualizaes
comentrios:34
Umafuncionalidadeessencialemqualquersistemaahabilidadeparacomunicarsecomumrepositriodedados.Podemosdefinirrepositriodedadosdevriasmaneiras,porexemplo,comoumpooldeobjetosdenegcionumORBouumbancodedados.Bancosdedadosconstituemotipomaiscomumderepositrio.JavadispedeumaAPIparaacessarrepositriosdedados:aJavaDataBaseConnectivityAPIouJDBCAPI.
AJDBCimplementaemJavaafuncionalidadedefinidapelopadroSQLCallLevelInterfaceouSQLCLI.UmoutroexemplodeAPIqueimplementaoSQLCallLevelInterfaceopopularssimoODBCdasplataformasWintel.AmaioriadosfornecedoresdebancosdedadosofereceumaimplementaoparticulardeSQLCLI.AvantagemdeJDBCaportabilidadedaaplicaocliente,inerentedalinguagemJava.AespecificaocorrentedaJDBCAPIa2.1.
A JDBC compreende uma especificao para ambos: os desenvolvedores de drivers JDBC e os desenvolvedores de aplicaes clientes que precisem acessarbancosdedadosemJava.EstaremosdandoumaolhadanodesenvolvimentodeaplicaesemJava,ento,umaboaidiacomearcomosuportededados.
Existem4tiposdediferentesdedriversJDBC(paraumalistadefornecedoresporespecificaoetipo,videhttp://www.javasoft.com/products/jdbc/drivers.html):
UmavezqueODBCumaespecificaopadrodomundoWintel,o tipo1umdriverdeponteentreJavaeODBC.OdriverdepontemaisconhecidoofornecidopelaSunoJDBCODBCbridge.Estetipodedrivernoportvel,poisdependedechamadasa funesdeODBC implementadasemlinguagemCecompiladasparaWintel,ououtraplataformaODBCcompatvel,aschamadasfunesnativas.
Odrivertipo2implementadoparcialmenteemJavaeparcialmenteatravsdefunesnativasqueimplementamalgumaAPIespecficadofornecedordebancodedados.Estetipofazoquesechamadewrapout,ouseja,provumainterfaceJavaparaumaAPInativanoJava.
Otipo3umdrivertotalmenteJavaquesecomunicacomalgumtipodemiddlewarequeentosecomunicacomobancodedados
Otipo4umdrivertotalmenteJavaquevaidiretamenteaobancodedados.
NumaprximaparteveremosaindaumdrivergratuitoquepermiteacessarbancosdedadosqueofereamsuporteapenasaoBridge(tipo1)viarede.VeremosaseguircomoacessarumbancodedadosatravsdeJDBC.NossocenriobsicoumapequenaaplicaodecontroledosmeusCDs(clssica!)implementadaemalgumxBasecompatvel.Emprximosexemplosiremosutilizaroutrosbancosdedados.ParautilizarmosaJDBCnumprogramaemJava,precisamosdeclararopacotequecontmaJDBCAPI:
AcessandobancosdedadosemJDBC
importjava.sql.*;
Aprimeiracoisaafazerestabelecerumaconexocomobancodedados.Fazemosissoemdoispassos:primeirocarregamosodriverparaobancodedadosnaJVMdaaplicao(1).Umavezcarregado,odriverseregistraparaoDriverManagereestdisponvelparaaaplicao.UtilizamosentoaclasseDriverManagerparaabrirumaconexocomobancodedados(2).AinterfaceConnectiondesignaumobjeto,nocasocon,parareceberaconexoestabelecida:
try//AcapturadeexceesSQLExceptionemJavaobrigatriaparausarmosJDBC.{//EsteumdosmeiospararegistrarumdriverClass.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance();//Registradoodriver,vamosestabelecerumaconexoConnectioncon=DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta","senha");}catch(SQLExceptione){//sehouvealgumerro,umaexceogeradaparainformaroerroe.printStackTrace();//vejamosqueerrofoigeradoequemogerou}
Estabelecidaaconexo,podemosexecutarcomandosSQLparaobancodedados.Vejamoscomorealizarumaconsultasobreottulo,numerodefaixaseoartista
HOME NOTCIAS ARTIGOS FRUM BUSCA ENVIARNOTCIA CONTRIBUIR
2 53Like32
-
decadaCDnobancodedados.Podemosusar3interfacesparaexecutarcomandosSQLnobancodedados.AprimeiradelasainterfaceStatement,quepermitea execuo dos comandos fundamentais de SQL (SELECT, INSERT, UPDATE ou DELETE). A interface PreparedStatement nos permite usufruir de SQLarmazenado ou prcompilado no banco, quando o banco de dados suportar este recurso. A terceira interface CallableStatement, e permite executarprocedimentosefunesarmazenadosnobancoquandoobancosuportaresterecurso.VejamoscomoutilizarainterfaceStatement.NosprximosartigossobreJDBCiremosinvestigarasoutras.
//Apsestabelecermosaconexocomobancodedados//UtilizamosomtodocreateStatementdeconparacriaroStatementStatementstm=con.createStatement();//VamosexecutaroseguintecomandoSQL:StringSQL="Selecttitulo,autor,total_faixasfromMeusCDs";
AinterfaceResultSetpermitecolherosresultadosdaexecuodenossaquerynobancodedados.Estainterfaceapresentaumasriedemtodosparaproveroacessoaosdados:
//DefinidooStatement,executamosaquerynobancodedadosResultSetrs=stm.executeQuery(SQL);//Omtodonext()informasehouveresultadoseposicionaocursordobanco//naprximalinhadisponvelpararecuperao//Comoesperamosvriaslinhasutilizamosumlaopararecuperarosdadoswhile(rs.next()){//OsmtodosgetXXXrecuperamosdadosdeacordocomotipoSQLdodado:Stringtit=rs.getString("titulo");Stringaut=rs.getString("autor");inttotalFaixas=rs.getInt("total_faixas");//Asvariveistit,autetotalFaixascontmosvaloresretornados//pelaquery.VamosimprimlosSystem.out.println("Titulo:"+tit+"Autor:"+aut+"Tot.Faixas:"+totalFaixas);}
E nosso acesso est terminado. O importante agora liberar os recursos alocados pelo banco de dados para a execuo deste cdigo. Podemos fazer issofechandooStatement,queliberaosrecursosassociadosexecuodestaconsultamasdeixaaconexoabertaparaaexecuodeumaprximaconsulta,oufechandodiretamenteaconexo,queencerraacomunicaocomobancodedados.Paratermoscertezadequevamosencerrarestaconexomesmoqueumaexceoocorra,reservamosofechamentoparaaclusulafinally()dotratamentodeexcees.
finally{try{con.close();}catch(SQLExceptiononConClose){System.out.println("Houveerronofechamentodaconexo");onConClose.printStackTrace();}}
Umaclasseparalistarumatabela
Vamoscolocartudoissoemconjuntoparatermosumavisoemperspectiva:
packagewlss.jdbcTutorial;importjava.sql.*;classExemplo1{publicstaticvoidmain(Stringargs[]){//AcapturadeexceesSQLExceptionemJavaobrigatriaparausarmosJDBC.//Paratermosacessoaoobjetocon,eledeveterumescopomaisamploqueoblocotryConnectioncon=null;try
-
comentrios:34
{//EsteumdosmeiospararegistrarumdriverClass.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance();//Registradoodriver,vamosestabelecerumaconexocon=DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta","senha");//Apsestabelecermosaconexocomobancodedados//UtilizamosomtodocreateStatementdeconparacriaroStatementStatementstm=con.createStatement();//VamosexecutaroseguintecomandoSQL:StringSQL="Selecttitulo,autor,total_faixasfromMeusCDs";//DefinidooStatement,executamosaquerynobancodedadosResultSetrs=stm.executeQuery(SQL);//Omtodonext()informasehouveresultadoseposicionaocursordobanco//naprximalinhadisponvelpararecuperao//Comoesperamosvriaslinhasutilizamosumlaopararecuperarosdadoswhile(rs.next()){//OsmtodosgetXXXrecuperamosdadosdeacordocomotipoSQLdodado:Stringtit=rs.getString("titulo");Stringaut=rs.getString("autor");inttotalFaixas=rs.getInt("total_faixas");//Asvariveistit,autetotalFaixascontmosvaloresretornados//pelaquery.VamosimprimlosSystem.out.println(48:"Titulo:"+tit+"Autor:"+aut+"49:Tot.Faixas:"+totalFaixas);}}catch(SQLExceptione){//sehouvealgumerro,umaexceogeradaparainformaroerroe.printStackTrace();//vejamosqueerrofoigeradoequemogerou}finally{try{con.close();}catch(SQLExceptiononConClose){System.out.println("Houveerronofechamentodaconexo");onConClose.printStackTrace();}}//fimdoblocotrycatchfinally}//fimdamain}//fimdenossoprimeiroexemplo!
NaprximapartedesteartigoiremosanalisarasextensesintroduzidaspelaAPI2.1easinterfacesPreparedStatementeCallableStatement.
Leiatambm:AcessandoBancodeDadosemJava(PARTE2)AcessandoBancodeDadosemJava(PARTE3)
AplicativoJavaacessandobancodedados:AplicativoJavacomacessoabancodedados:1parteDaoAcessandoDadoscomJava:Parte2Prevendoproblemas
QueraprendermaissobreJava?OqueJava?CaractersticasBsicasOrientaoaObjetos
TutoriaisparaCertificaoJavaFundamentosdaLinguagemModificadoresOperadoreseatribuiesControledeFluxoOrientaoaObjetosJavaLangeWrappersObjetoseConjuntosClassesInternasThreads(Segmentos)
-
RSSNotciasRSSFrum
TpicosRelacionadosNetbeans+SQLServer2012
BloquearTelasnoSwing
Ireport
JSFpginascomacessoaoBDparadefuncionarapsalgumtempo
JAVAGUIcomMYSQLcadastro
VagaLderProjetistaJava
ConsultaemBancodeDadosQueDependedoResultadodeumaConsultaAnterior
loginemjavadesktop
NoConsegueAcessarOBancoDeDadosMySQLAcredito!!!
ComocriarosControllers?
Locadoraemjava
AcessoRemotodeBancodeDadosPostgreSQL
AssociarusuariohaumID
Alteraodedadosjava+mySQL
InstalaodeSistemanamaquinadoCliente
BancodeDadosBluej
AjudaJava+MySQL
DEVJavaSoPaulo/SP
Usarbancoemjavajestandoconectado
parseInteparseDouble
Sistemajavadesktopcombancodedadosrodandoemvriasmquinas
BancodeDadosPostgreSQLcomaopoi
criaruminstaladorparaprogramasfeitocomnetbeansemysql
MeconecteiaoBancodeDados,comofaoparainserirdados?
Home Sobre Anuncie
OJavaFree.orgumacomunidadejavaformadapelacoolaboraodosdesenvolvedoresdatecnologiajava.Apublicaodeartigosalmdeajudaracomunidadejava,ajudaadarmaiorvisibilidadeparaoautor.Contribuaconosco.