Documente Academic
Documente Profesional
Documente Cultură
comentrios
postfavorito(21)
22
Gostei(8)
(1)
Curtir
22
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.*
DEVMEDIA
Compile(F9)Execute(Shift+F6).
RealizandooperaesdeConsulta,AlteraoeExclusoemBD:
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!")
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.
Oquevocachoudestepost?