Criando Uma Aplicao Com Acesso a Banco de Dados No NetBeans

  • Published on
    20-Dec-2015

  • View
    17

  • Download
    9

DESCRIPTION

Banco de dados

Transcript

  • Gostei(8) (1)

    Buscar

    comentrios postfavorito(21)

    Criando uma aplicao comacesso a Banco de Dados noNetBeansO NetBeans no possui ferramentas que permitam criarvisualmente componentes, em um programa, paramanipular os dados de uma tabela, a exemplo dosexistentes em outras ferramentas, em outras Linguagensde programao.

    0 22Curtir22

  • Introduo

    ONetBeansnopossuiferramentasquepermitamcriarvisualmentecomponentes,emum

    programa,paramanipularosdadosdeumatabela,aexemplodosexistentesemoutras

    ferramentas,emoutrasLinguagensdeprogramao.

    ParatrabalharcomBancodeDadosprecisofazloviacdigo,quedeverserinserido

    dentrodomtodoactionPerformeddeumJButton.

    CriaseoFormulriocontendooscomponentesvisuaisparamostrar,emanipular,os

    dadosdatabeladoBancodeDados.Dentreestescomponentesestoosbotesoumenus,

    osquaisseroosresponsveisporexecutaroscdigospararealizarumadeterminada

    operao,consulta,insero,alteraoouexclusoemumBD.

    Depoisdecriadaapartevisual,devemserimplementadososcdigosnosbotes/menus.

    Podemosconstruirumaaplicaousandooseguinteroteiro:

    1)Importaropacotejava.sql:

    importjava.sql.*

    2)CarregarodriverdeacessoaoBD:

    AtravsdaInstalaodeumafonteJDBC/ODBCemplataformaWindows:

    Class.forName(sun.jdbc.odbc.JdbcObdcDriver)

  • Atravsdodriverespecficodobanco.ExparaoMySQL:

    Class.forName(com.mysql.jdbc.Driver)

    3)ObterumaconexocomoBD:(Ex:paraumBancodeDadosAccess:IJPlanetas.mdb,

    atravsdeumafonteJDBC/ODBC)

    Connectionconexo=DriverManager.getConnection(jdbc:odbc:IJPlanetas)

    4)Pormeiodaconexorealizada,devemosobterumainstnciadeumobjetoStatement,

    PreparedStatementouCallableStatement,parapassarcomandosSQLaoBD:

    Statementstmt=conexo.createStatement()

    5)CriarobjetosparaexecutaroperaesnoBD(execute(String),executeQuery(String),

    ExecuteUpdate(String),executeBatch()):

    intreg=stmt.executeUpdate(deletefromplanetawherenome=Maria)

    ResultSetrs=stmt.executeQuery(selectnomefromplaneta)

    6)AlgumasoperaesretornamresultadosdoBD(umobjetoResultsetconjuntode

    registros),osquaisdevemosexibirouprocessar:

    while(rs.next()){//moveocursoderegistros

    StringNome=rs.getString(nome)//obtmovalordocampo

    nomedatabela

    System.out.println(Nome)

  • }7)Quandonoprecisarmaisdosobjetosobtidos,libereos:

    rs.close()

    stmt.close()

    8)ApstodasasoperaesencerreaconexocomBD:

    conexo.close()

    ExemploCompleto

    CrieumaaplicaoparacadastraraMatriculaeosNomesdosFuncionriosdeuma

    Empresa,emumBancodeDadosAccess,atravsdeumafontededadosJDBC/ODBC:

    CriarumnovoProject:cliquenomenuFile>>NewProject>>selecioneGeneral

    >>JavaApplicatin>>Next>>naprximajaneladigiteonodoProjeto:

    ExemploConexaoBD,cliqueemFinish.

    CriarumJFormcontendooscomponentesvisuais:CliquenoMenuFile>>NewFile

    >>SelecioneJavaGUIForms>>JFrameForms>>cliquenobotoNext.Najanelaquese

    abre,nocampoName,digiteSistCadFuncecliquenoBotoFinish.

    Insiraosseguintescomponentes:doisJLabel(NomeeMatricula),doisJTextFielde

    umJButton(Salvar).

  • Figura1TelaSistCadFunc.

    Apartevisualestaconstruda,faltaocdigoparasalvarosdados.

    AbraoAccessecrieumBD(BDCadastro)comumaTabela(TabFicha)comos

    campos:Matricula(TipoNumrico/ChavePrimria)eNomeTipoTexto.

    CriarafontededadosJDBC/ODBC:Nowindows,abraoPaineldeControle>>

    FerramentasAdministrativas>>FontesdeDadosODBC>>cliquenoBotoAdd>>

    SelecioneoDriverp/BDAccess>>cliquenobotoConcluir>>nocampoNomedaFonte

    deDadosdigiteBDCadastro>>cliquenobotoSelecionar>>ProcureoBDcriado

    (BDCadastro)ecliquenoBotoOK>>OK>>OK.

    Figura2TeladeAberturadaFontedeDadosODBC.

  • Figura3TeladeSeleodoDriver.

    Figura4TeladeConfiguraodoDriver.

  • Figura5TeladeSeleodoBancoAccess.

    CriadooBDeaFonteODBC,volteparaasuaaplicaonoNetBeansecliquecomoboto

    direitodomousenoJButton(Salvar),selecioneEvent>>Action>>actionPerformed,

    paracodificaraconexo:

    DepoisdeprivatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){,

    digite:

    try{//tratamentodeerros

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")//DriverJDBCFonte

    deDadosODBC

    //conectanoBD,asaspasvaziasrepresentamoLogin:usurioe

    senha.

    Connectioncon=

    DriverManager.getConnection("jdbc:odbc:BDCadastro","","")

    Statementstmt=con.createStatement()//objetocomdosql

    intcadMat=Integer.parseInt(jTextField1.getText())

  • StringcadNome=jTextField2.getText()//obtmnomedigitado

    stmt.executeUpdate("insertintoTabFicha(Matricula,Nome)values('"

    +cadMat+"','"+cadNome+"')")

    JOptionPane.showMessageDialog(this,"DadosSalvos!")

    con.close()//fechaconexocomBD

    }catch(SQLExceptione){//trataoserrosSQL

    JOptionPane.showMessageDialog(this,"ErroCmdoSQL"+

    e.getMessage())

    }catch(ClassNotFoundExceptione){//trataerrosdeconexo

    JOptionPane.showMessageDialog(this,"Drivernoencontrado"

    )

    }

    ImportarospacotessqleswingdoJavaantesde:publicclassSistCadFunc...

    digite:

    importjava.sql.*

    importjavax.swing.*

    Compile(F9)Execute(Shift+F6).

    RealizandooperaesdeConsulta,AlteraoeExclusoemBD:

    0nfejc

    LOGIN

  • InsiratrsBotesparaexecutarasoperaesrestantesnoBancodeDados

    (Consulta,AlteraoeExcluso,atravsdaMatricula),umJLabel,paraexibiroTexto

    MatriculaparaConsulta/Excluso,supondoqueestasoperaesserofeitasatravsdo

    campoMatricula,einsiratambmumJTextFieldparausuriopoderdigitaraMatricula,

    oucrieumnovoFormcontendoosJLabel,JTextField,eJButton,sendoqueomesmo

    deverserchamadoporoutroFormatravsdeumJMenurBar.

    Supondoqueforaminseridososnovoscomponentesdaseguinteforma:

    Figura6TelaSistCadFuncatualizada.

    Bastaclicarcomobotodireitodomousesobreobotodesejadoeinseriro

    respectivocdigoparaarespectivaoperao:

    OperaodeConsulta(AtravsdaMatriculadigitadapelousurionojTextField3)

    booleanconsulta=true

    try{//tratamentodeerros

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")//buscaDriver

    //conectanoBD

  • Connection

    con=DriverManager.getConnection("jdbc:odbc:BDCadastro","","")

    Statementstmt=con.createStatement()//objetocomdosql

    intConsMatricula=Integer.parseInt(jTextField3.getText())

    ResultSetRS=stmt.executeQuery("Select*fromTabFichawhere

    Matricula="+ConsMatricula)

    while(RS.next()){

    //ExibirosvaloresretornadosnaconsultanosjTextField

    intMat=RS.getInt("Matricula")//PegaaMatricula

    jTextField1.setText(String.valueOf(Mat))//converteInteiro

    paraString.

    jTextField2.setText(RS.getString("Nome"))//PegaoNome

    consulta=false

    JOptionPane.showMessageDialog(this,"DadosEncontrados!")

    }

    if(consulta)JOptionPane.showMessageDialog(this,"DadosNo

    Encontrados!")

    RS.close()

    stmt.close()

    con.close()//fechaconexocomBD

    }catch(SQLExceptione){//trataoserros

    JOptionPane.showMessageDialog(this,"ErroCmdoSQL

  • "+e.getMessage())

    }catch(ClassNotFoundExceptione){

    JOptionPane.showMessageDialog(this,"Drivernoencontrado")

    }

    Alterar:(RealizaalteraodosdadosatravsdaMatriculainformadanojTextField3)

    try{//tratamentodeerros

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")//buscaDriver

    //conectanoBD

    Connection

    con=DriverManager.getConnection("jdbc:odbc:BDCadastro","","")

    Statementstmt=con.createStatement()//objetocomdosql

    intconsMatricula=Integer.parseInt(jTextField3.getText())

    intcadMat=Integer.parseInt(jTextField1.getText())

    StringcadNome=jTextField2.getText()

    intregistro=stmt.executeUpdate("updateTabFichasetNome='"+cadNome+

    "',Matricula="+cadMat+"whereMatricula="+consMatricula)

    if(registro!=0)JOptionPane.showMessageDialog(this,"DadosAlterados!")

    elseJOptionPane.showMessageDialog(this,"DadosNo

    Alterados!")

  • stmt.close()

    con.close()//fechaconexocomBD

    }catch(SQLExceptione){//trataoserros

    JOptionPane.showMessageDialog(this,"ErroCmdoSQL

    "+e.getMessage())

    }catch(ClassNotFoundExceptione){

    JOptionPane.showMessageDialog(this,"Drivernoencontrado")

    }

    Excluir:(RealizaexclusodoregistroatravsdaMatriculainformadanojTextField3)

    try{//tratamentodeerros

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")//buscaDriver

    //conectanoBD

    Connection

    con=DriverManager.getConnection("jdbc:odbc:BDCadastro","","")

    Statementstmt=con.createStatement()//objetocomdosql

    intexcMatricula=Integer.parseInt(jTextField3.getText())

    intregistro=stmt.executeUpdate("deletefromTabFichawhere

    Matricula="+excMatricula)

    if(registro!=0)JOptionPane.showMessageDialog(this,"DadosExcluidos!")

  • Oquevocachoudestepost?

    elseJOptionPane.showMessageDialog(this,"DadosnoExcluidos!")

    stmt.close()

    jTextField3.setText()//Limpaacaixadetexto

    con.close()//fechaconexocomBD

    }catch(SQLExceptione){//trataoserros

    JOptionPane.showMessageDialog(this,"ErroCmdoSQL

    "+e.getMessage())

    }catch(ClassNotFoundExceptione){

    JOptionPane.showMessageDialog(this,"Drivernoencontrado")

    }

    CompileExecute

    OBS:ComooscomandosdeconexocomoBancodeDadosestoserepetido,osmesmos

    poderiamserimplementadosdentrodomtodoconstrutoroudentrodeummtodoe

    seremexecutadosatravsdeumachamadadestemtodoquandosedesejarestabelecer

    umaconexocomobancodedadospararealizarumadeterminadaoperaoemsuas

    tabelas,diminuindoaquantidadedecdigoaserdigitado.

    JosValneyMeloBarbalho

    JosValneyMeloBarbalho(jvmb@ibest.com.br),MBAemGSI.