Você está na página 1de 17

Criando um Cadastro de Pessoa para android com (SQLCompact)

Neste artigo irei ensinar como fazer um cadastro de pessoa para android salvando em banco de dados SQLCompact, estarei utilizando o eclipse para criar o aplicativo.
11

Object 1

Object 2

Gostei (5) (0) Vamos l, Crie um projeto android com o nome que desejar, no meu caso vou dar o nome de cadPessoa.

Feito isso, vamos criar as se uintes classes !"uscarPessoa!, !CadastroPessoa!, !Pessoa!, !Pessoa#ist$dapter!, !%ditarPessoa!, !&epositorioPessoa!, !&epositorioPessoa'cript!, !'(#ite)elper!, delete a class $ctivit* que sera criada so+in,a. devera -icar da se uinte maneira .

$ ora vamos con-i ura nossa aplica/0o para ser reprodu+ida na tela, ac,e o !$ndroid1ani-est.2ml!, preste muita aten/0o nessa parte. de um duplo clic3 nele, selecione a a4a a4ai2o escrito !$pplication!, remove a classe $ctivit* que -oi criada, so+in,a, deverar -icar da se uinte maneira.

$ ora na a4a !$ndroid1ani-est.2ml! dei2e da se uinte maneira .


<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http: schemas.android.com ap! res android" pac!age="com."r.#ad$essoa" android:version#ode="1" android:version%ame="1.0" >

<uses-sd! android:min&d!'ersion="8"

>

<application android:icon="(dra)a"le icon" android:la"el="(string app*name" > <activit+ android:name="#adastro$essoa"> <intent-filter> <action android:name="android.intent.action.,-.%">< action> <categor+ android:name="android.intent.categor+./-0%#123">< categor+> < intent-filter> < activit+> <activit+ android:name="2ditar$essoa">< activit+> <activit+ android:name="4uscar$essoa">< activit+> < application> < manifest>

54s. 6esse 71# con-i urei as classes de visual, e in-ormei a classe que ser criada por inicio. Crie uma pasta C,amada !dra8a4le! acima das outras pastas !dra8a4le 9.9! 6as pastas dra8a4le adiciona as se uintes ima ens (:ma ens estar0o dispon;veis para do8nload). $ ora vamos ajeitar nossas classes e o la*out das telas. Vamos criar primeiro os -ormulrios para nosso visual, na pasta res, crie < arquivos !$ndroid 71# #a*out File! com os se uintes nomes !pessoa=lin,a=ta4ela!, !-orm=4uscar=pessoa!, !-orm=editar=pessoa!, deleta o main.2ml 6o -orm=4uscar=pessoa, de um duplo clic3, e na a4a !-orm=4uscar=pessoa.2ml!, dei2e da se uinte maneira.
<?xml version="1.0" encoding="utf-8"?> <5a"le/a+out xmlns:android="http: schemas.android.com ap! res android" android:la+out*height="fill*parent" android:la+out*)idth="fill*parent" android:"ac!ground="6ffffff"> <5a"le3o)> <5ext'ie) android:id="(7id text1" android:text="%ome:" android:text#olor="6000000" > <2dit5ext android:id="(7id campo%ome" android:)idth="890px" > < 5a"le3o)> <5a"le3o)> <.mage4utton android:src="(dra)a"le pes:uisar" android:id="(7id "t4uscar" android:text="4uscar" > < 5a"le3o)> <5a"le3o)> <5ext'ie) android:id="(7id text8" android:text="#pf:" android:text#olor="6000000" > <2dit5ext android:id="(7id campo#pf" > < 5a"le3o)> <5a"le3o)> <5ext'ie) android:id="(7id text;" android:text=".dade:" android:text#olor="6000000" > <2dit5ext android:id="(7id campo.dade" > < 5a"le3o)> < 5a"le/a+out>

a ora no -orm=editar=pessoa insira o se uinte codi o.


<?xml version="1.0" encoding="utf-8"?> <5a"le/a+out xmlns:android="http: schemas.android.com ap! res android" android:la+out*height="fill*parent" android:la+out*)idth="fill*parent" android:"ac!ground="6ffffff"> <5a"le3o)> <5ext'ie) android:id="(7id text1" android:text="%ome:" android:text#olor="6000000" > <2dit5ext android:id="(7id campo%ome" android:)idth="890px" > < 5a"le3o)> <5a"le3o)> <5ext'ie) android:id="(7id text8" android:text="#pf:" android:text#olor="6000000" > <2dit5ext android:id="(7id campo#pf" > < 5a"le3o)> <5a"le3o)> <5ext'ie) android:id="(7id text;" android:text=".dade:" android:text#olor="6000000" > <2dit5ext android:id="(7id campo.dade" > < 5a"le3o)> </inear/a+out android:la+out*)idth=")rap*content" android:la+out*height="fill*parent"> <.mage4utton android:src="(dra)a"le cancelar" android:id="(7id "t#ancelar" android:text="#ancelar" android:la+out*)idth=")rap*content" android:la+out*height=")rap*content" > <.mage4utton android:src="(dra)a"le salvar" android:id="(7id "t&alvar" android:text=" &alvar " android:la+out*)idth=")rap*content" android:la+out*height=")rap*content" > <.mage4utton android:src="(dra)a"le excluir" android:id="(7id "t2xcluir" android:text=" 2xcluir " android:la+out*)idth=")rap*content" android:la+out*height=")rap*content" > < /inear/a+out> < 5a"le/a+out>

a ora no pessoa=lin,a=ta4ela insira o se uinte codi o.


<?xml version="1.0" encoding="utf-8"?> </inear/a+out xmlns:android="http: schemas.android.com ap! res android" android:la+out*)idth="fill*parent" android:la+out*height=")rap*content" > <5ext'ie) android:id="(7id nome" android:la+out*height=";0dip" android:la+out*)idth="1<0sp" > <5ext'ie) android:id="(7id cpf" android:la+out*height=";0dip" android:la+out*)idth="100sp" > <5ext'ie) android:id="(7id idade" android:la+out*height=";0dip" android:la+out*)idth="90sp" > < /inear/a+out>

$ parte de la*out, j est pronta, a ora vamos -a+er a parte das classes, dei2e a classe Pessoa da se uinte maneira .
pac!age com."r.#ad$essoa= import android.content.#ontent0ris= import android.net.0ri=

import android.provider.4ase#olumns= pu"lic class $essoa > pu"lic static &tring?@ colunas = ne) &tring?@ > $essoas.*.AB $essoas.%C,2B $essoas.#$DB $essoas..A-A2 E= pu"lic static final &tring -051C3.5F = "com."r.#ad$essoa.provider.pessoa"= pu"lic pu"lic pu"lic pu"lic long id= &tring nome= &tring cpf= int idade=

pu"lic $essoaGH > E pu"lic $essoaG&tring nomeB &tring cpfB int idadeH > superGH= this.nome = nome= this.cpf = cpf= this.idade = idade= E pu"lic $essoaGlong idB &tring nomeB &tring cpfB int idadeH > superGH= this.id = id= this.nome = nome= this.cpf = cpf= this.idade = idade= E II I #lasse interna para representar as colunas e ser utiliJada por um #ontent I $rovider I I Dilha de 4ase#olumns :ue KL define G*id e *countHB para seguir o padrMo I -ndroid I pu"lic static final class $essoas implements 4ase#olumns > %Mo pode instanciar esta #lasse private $essoasGH > E pu"lic static final 0ri #C%52%5*03. = 0ri.parseG"content: 7 " pessoas"H= pu"lic static final &tring #C%52%5*5F$2 = "vnd.android.cursor.dir vnd.google.pessoas"= pu"lic static final &tring #C%52%5*.52,*5F$2 = "vnd.android.cursor.item vnd.google.pessoas"= pu"lic static final &tring A2D-0/5*&C35*C3A23 = "*id -&#"= pu"lic static final &tring %C,2 = "nome"= pu"lic static final &tring #$D = "cpf"= pu"lic static final &tring .A-A2 = ".A-A2"= pu"lic static 0ri get0ri.dGlong idH > -diciona o id na 03. default do pessoas " 7 -051C3.5F

idH= E E

0ri uri$essoas = #ontent0ris.)ith-ppended.dG$essoas.#C%52%5*03.B return uri$essoas=

(Cverride pu"lic &tring to&tringGH > return "%ome: " 7 nome 7 "B cpf: " 7 cpf 7 "B .dade: " 7 idade= E E

>ei2e a classe CadastroPessoa da se uinte maneira .


pac!age com."r.#ad$essoa= import Kava.util./ist= import com."r.#ad$essoa.$essoa.$essoas= import import import import import import import android.app./ist-ctivit+= android.content..ntent= android.os.4undle= android.vie).,enu= android.vie).,enu.tem= android.vie).'ie)= android.)idget./ist'ie)=

pu"lic class #adastro$essoa extends /ist-ctivit+ > protected static final int .%&23.3*2A.5-3 = 1= protected static final int 40&#-3 = 8= pu"lic static 3epositorio$essoa repositorio= private /ist<$essoa> pessoas= (Cverride pu"lic void on#reateG4undle icicleH > super.on#reateGicicleH= repositorio = ne) 3epositorio$essoa&criptGthisH= atualiJar/istaGH= E protected void atualiJar/istaGH > $ega a lista de pessoas e exi"e na tela pessoas = repositorio.listar$essoasGH= -daptador de lista customiJado para cada linha de uma pessoa set/ist-dapterGne) $essoa/ist-dapterGthisB pessoasHH=

(Cverride pu"lic "oolean on#reateCptions,enuG,enu menuH > super.on#reateCptions,enuGmenuH= menu.addG0B .%&23.3*2A.5-3B 0B ".nserir %ovo"H.set.conG3.dra)a"le.novoH= menu.addG0B 40&#-3B 0B "4uscar"H.set.conG3.dra)a"le.pes:uisarH= return true= E (Cverride

pu"lic "oolean on,enu.tem&electedGint feature.dB ,enu.tem itemH > #licou no menu s)itch Gitem.get.tem.dGHH > case .%&23.3*2A.5-3: -"re a tela com o formulLrio para adicionar start-ctivit+Dor3esultGne) .ntentGthisB 2ditar$essoa.classHB .%&23.3*2A.5-3H= "rea!= case 40&#-3: -"re a tela para "uscar a pessoa pelo nome start-ctivit+Gne) .ntentGthisB 4uscar$essoa.classHH= "rea!= E return true= E (Cverride protected void on/ist.tem#lic!G/ist'ie) lB 'ie) vB int posicaoB long idH > super.on/ist.tem#lic!GlB vB posicaoB idH= editar$essoaGposicaoH= E 3ecupera o id da pessoaB e a"re a tela de ediNMo protected void editar$essoaGint posicaoH > 0suLrio clicou em alguma pessoa da lista 3ecupera a pessoa selecionado $essoa pessoa = pessoas.getGposicaoH= #ria a intent para a"rir a tela de editar .ntent it = ne) .ntentGthisB 2ditar$essoa.classH= $assa o id da pessoa como parOmetro it.put2xtraG$essoas.*.AB pessoa.idH= -"re a tela de ediNMo start-ctivit+Dor3esultGitB .%&23.3*2A.5-3H= E (Cverride protected void on-ctivit+3esultGint codigoB int codigo3etornoB .ntent itH > super.on-ctivit+3esultGcodigoB codigo3etornoB itH= Puando a activit+ 2ditar$essoa retornarB seKa se foi para adicionar vamos atualiJar a lista if Gcodigo3etorno == 32&0/5*CQH > atualiJa a lista na tela atualiJar/istaGH= E E (Cverride protected void onAestro+GH > super.onAestro+GH= Decha o "anco repositorio.fecharGH=

E E

$ ora a classe %ditarPessoa da se uinte maneira .


pac!age com."r.#ad$essoa= import com."r.#ad$essoa.$essoa.$essoas=

import import import import import import import

android.app.-ctivit+= android.content..ntent= android.os.4undle= android.vie).'ie)= android.vie).'ie).Cn#lic!/istener= android.)idget.2dit5ext= android.)idget..mage4utton=

pu"lic class 2ditar$essoa extends -ctivit+ > static final int 32&0/5*&-/'-3 = 1= static final int 32&0/5*2R#/0.3 = 8= #ampos texto private 2dit5ext campo%ome= private 2dit5ext campo#pf= private 2dit5ext campo.dade= private /ong id= (Cverride protected void on#reateG4undle icicleH > super.on#reateGicicleH= set#ontent'ie)G3.la+out.form*editar*pessoaH= campo%ome = G2dit5extH find'ie)4+.dG3.id.campo%omeH= campo#pf = G2dit5extH find'ie)4+.dG3.id.campo#pfH= campo.dade = G2dit5extH find'ie)4+.dG3.id.campo.dadeH= id = null= 4undle extras = get.ntentGH.get2xtrasGH= &e for para 2ditarB recuperar os valores ... if Gextras S= nullH > id = extras.get/ongG$essoas.*.AH= if Gid S= nullH > T uma ediNMoB "usca o pessoa... $essoa p = "uscar$essoaGidH= campo%ome.set5extGp.nomeH= campo#pf.set5extGp.cpfH= campo.dade.set5extG&tring.valueCfGp.idadeHH= E

.mage4utton "t#ancelar = G.mage4uttonH find'ie)4+.dG3.id."t#ancelarH= "t#ancelar.setCn#lic!/istenerGne) Cn#lic!/istenerGH > pu"lic void on#lic!G'ie) vie)H > set3esultG32&0/5*#-%#2/2AH= Decha a tela finishGH= E EH= /istener para salvar a pessoa .mage4utton "t&alvar = G.mage4uttonH find'ie)4+.dG3.id."t&alvarH= "t&alvar.setCn#lic!/istenerGne) Cn#lic!/istenerGH > pu"lic void on#lic!G'ie) vie)H > salvarGH= E EH= .mage4utton "t2xcluir = G.mage4uttonH find'ie)4+.dG3.id."t2xcluirH=

if Gid == nullH > &e id estL nuloB nMo pode excluir "t2xcluir.set'isi"ilit+G'ie)..%'.&.4/2H= E else > /istener para excluir a pessoa "t2xcluir.setCn#lic!/istenerGne) Cn#lic!/istenerGH > pu"lic void on#lic!G'ie) vie)H > excluirGH= E EH= E

(Cverride protected void on$auseGH > super.on$auseGH= #ancela para nMo ficar nada na tela pendente set3esultG32&0/5*#-%#2/2AH= Decha a tela finishGH=

pu"lic void salvarGH > int idade = 0= tr+ > idade = .nteger.parse.ntGcampo.dade.get5extGH.to&tringGHH= E catch G%um"erDormat2xception eH > E $essoa pessoa = ne) $essoaGH= if Gid S= nullH > U uma atualiJaNMo pessoa.id = id= E pessoa.nome = campo%ome.get5extGH.to&tringGH= pessoa.cpf = campo#pf.get5extGH.to&tringGH= pessoa.idade = idade= &alvar salvar$essoaGpessoaH= CQ set3esultG32&0/5*CQB ne) .ntentGHH= Decha a tela finishGH= E pu"lic void excluirGH > if Gid S= nullH > excluir$essoaGidH= E CQ set3esultG32&0/5*CQB ne) .ntentGHH= Decha a tela finishGH= E 4uscar a pessoa pelo id protected $essoa "uscar$essoaGlong idH >

return #adastro$essoa.repositorio."uscar$essoaGidH=

&alvar a pessoa protected void salvar$essoaG$essoa pessoaH > #adastro$essoa.repositorio.salvarGpessoaH= E 2xcluir a pessoa protected void excluir$essoaGlong idH > #adastro$essoa.repositorio.deletarGidH= E E

$ ora a classe Pessoa da se uinte maneira .


pac!age com."r.#ad$essoa= import android.content.#ontent0ris= import android.net.0ri= import android.provider.4ase#olumns= pu"lic class $essoa > pu"lic static &tring?@ colunas = ne) &tring?@ > $essoas.*.AB $essoas.%C,2B $essoas.#$DB $essoas..A-A2 E= pu"lic static final &tring -051C3.5F = "com."r.#ad$essoa.provider.pessoa"= pu"lic pu"lic pu"lic pu"lic long id= &tring nome= &tring cpf= int idade=

pu"lic $essoaGH > E pu"lic $essoaG&tring nomeB &tring cpfB int idadeH > superGH= this.nome = nome= this.cpf = cpf= this.idade = idade= E pu"lic $essoaGlong idB &tring nomeB &tring cpfB int idadeH > superGH= this.id = id= this.nome = nome= this.cpf = cpf= this.idade = idade= E II I #lasse interna para representar as colunas e ser utiliJada por um #ontent I $rovider I I Dilha de 4ase#olumns :ue KL define G*id e *countHB para seguir o padrMo I -ndroid I pu"lic static final class $essoas implements 4ase#olumns >

%Mo pode instanciar esta #lasse private $essoasGH > E pu"lic static final 0ri #C%52%5*03. = 0ri.parseG"content: 7 " pessoas"H= pu"lic static final &tring #C%52%5*5F$2 = "vnd.android.cursor.dir vnd.google.pessoas"= pu"lic static final &tring #C%52%5*.52,*5F$2 = "vnd.android.cursor.item vnd.google.pessoas"= pu"lic static final &tring A2D-0/5*&C35*C3A23 = "*id -&#"= pu"lic static final &tring %C,2 = "nome"= pu"lic static final &tring #$D = "cpf"= pu"lic static final &tring .A-A2 = "idade"= pu"lic static 0ri get0ri.dGlong idH > -diciona o id na 03. default do pessoas 0ri uri$essoas = #ontent0ris.)ith-ppended.dG$essoas.#C%52%5*03.B E E (Cverride pu"lic &tring to&tringGH > return "%ome: " 7 nome 7 "B cpf: " 7 cpf 7 "B .dade: " 7 idade= E E return uri$essoas= " 7 -051C3.5F

idH=

$ ora a classe Pessoa#ist$dapter da se uinte maneira .


pac!age com."r.#ad$essoa= import Kava.util./ist= import import import import import import android.content.#ontext= android.vie)./a+out.nflater= android.vie).'ie)= android.vie).'ie)Vroup= android.)idget.4ase-dapter= android.)idget.5ext'ie)=

pu"lic class $essoa/ist-dapter extends 4ase-dapter > private #ontext context= private /ist<$essoa> lista= pu"lic $essoa/ist-dapterG#ontext contextB /ist<$essoa> listaH > this.context = context= this.lista = lista= E pu"lic int get#ountGH > return lista.siJeGH= E

pu"lic C"Kect get.temGint positionH > return lista.getGpositionH= E pu"lic long get.tem.dGint positionH > return position= E pu"lic 'ie) get'ie)Gint positionB 'ie) convert'ie)B 'ie)Vroup parentH > 3ecupera a pessoa da posiNMo atual $essoa p = lista.getGpositionH= /a+out.nflater inflater = G/a+out.nflaterH context.get&+stem&erviceG#ontext./-FC05*.%D/-523*&23'.#2H= 'ie) vie) = inflater.inflateG3.la+out.pessoa*linha*ta"elaB nullH= -tualiJa o valor do 5ext'ie) 5ext'ie) nome = G5ext'ie)H vie).find'ie)4+.dG3.id.nomeH= nome.set5extGp.nomeH= 5ext'ie) cpf = G5ext'ie)H vie).find'ie)4+.dG3.id.cpfH= cpf.set5extGp.cpfH= 5ext'ie) idade = G5ext'ie)H vie).find'ie)4+.dG3.id.idadeH= idade.set5extG&tring.valueCfGp.idadeHH= E E return vie)=

$ ora a classe &epositorioPessoa da se uinte maneira .


pac!age com."r.#ad$essoa= import Kava.util.-rra+/ist= import Kava.util./ist= import com."r.#ad$essoa.$essoa.$essoas= import import import import import import import android.content.#ontent'alues= android.content.#ontext= android.data"ase.#ursor= android.data"ase.&P/2xception= android.data"ase.s:lite.&P/iteAata"ase= android.data"ase.s:lite.&P/itePuer+4uilder= android.util./og=

pu"lic class 3epositorio$essoa > private static final &tring #-52VC3.- = "dados"= %ome do "anco private static final &tring %C,2*4-%#C = "dados*android"= %ome da ta"ela pu"lic static final &tring %C,2*5-42/- = "pessoa"= protected &P/iteAata"ase d"= pu"lic 3epositorio$essoaG#ontext ctxH > -"re o "anco de dados KL existente d" = ctx.openCr#reateAata"aseG%C,2*4-%#CB #ontext.,CA2*$3.'-52B nullH= E

protected 3epositorio$essoaGH > -penas para criar uma su"classe... E &alva a pessoaB insere um novo ou atualiJa pu"lic long salvarG$essoa pessoaH > long id = pessoa.id= if Gid S= 0H > atualiJarGpessoaH= E else > .nsere novo id = inserirGpessoaH= E E return id=

.nsere uma nova pessoa pu"lic long inserirG$essoa pessoaH > #ontent'alues values = ne) #ontent'aluesGH= values.putG$essoas.%C,2B pessoa.nomeH= values.putG$essoas.#$DB pessoa.cpfH= values.putG$essoas..A-A2B pessoa.idadeH= long id = inserirGvaluesH= return id= E .nsere uma nova pessoa pu"lic long inserirG#ontent'alues valoresH > long id = d".insertG%C,2*5-42/-B ""B valoresH= return id= E -tualiJa a pessoa no "anco. C id da pessoa T utiliJado. pu"lic int atualiJarG$essoa pessoaH > #ontent'alues values = ne) #ontent'aluesGH= values.putG$essoas.%C,2B pessoa.nomeH= values.putG$essoas.#$DB pessoa.cpfH= values.putG$essoas..A-A2B pessoa.idadeH= &tring *id = &tring.valueCfGpessoa.idH= &tring )here = $essoas.*.A 7 "=?"= &tring?@ )here-rgs = ne) &tring?@ > *id E= int count = atualiJarGvaluesB )hereB )here-rgsH= E return count=

-tualiJa a pessoa com os valores a"aixo - clLusula )here T utiliJada para identificar a pessoa a ser atualiJado pu"lic int atualiJarG#ontent'alues valoresB &tring )hereB &tring?@ )here-rgsH > int count = d".updateG%C,2*5-42/-B valoresB )hereB )here-rgsH= /og.iG#-52VC3.-B "-tualiJou ?" 7 count 7 "@ registros"H= return count= E Aeleta a pessoa com o id fornecido pu"lic int deletarGlong idH >

&tring )here = $essoas.*.A 7 "=?"= &tring *id = &tring.valueCfGidH= &tring?@ )here-rgs = ne) &tring?@ > *id E= int count = deletarG)hereB )here-rgsH= return count= E Aeleta a pessoa com os argumentos fornecidos pu"lic int deletarG&tring )hereB &tring?@ )here-rgsH > int count = d".deleteG%C,2*5-42/-B )hereB )here-rgsH= /og.iG#-52VC3.-B "Aeletou ?" 7 count 7 "@ registros"H= return count= E 4usca a pessoa pelo id pu"lic $essoa "uscar$essoaGlong idH > select I from pessoa )here *id=? #ursor c = d".:uer+GtrueB %C,2*5-42/-B $essoa.colunasB $essoas.*.A 7 "=" 7 idB nullB nullB nullB nullB nullH= if Gc.get#ountGH > 0H > $osicinoa no primeiro elemento do cursor c.move5oDirstGH= $essoa pessoa = ne) $essoaGH= /W os dados pessoa.id = c.get/ongG0H= pessoa.nome = c.get&tringG1H= pessoa.cpf = c.get&tringG8H= pessoa.idade = c.get.ntG;H= E E 3etorna um cursor com todas as pessoas pu"lic #ursor get#ursorGH > tr+ > select I from pessoas return d".:uer+G%C,2*5-42/-B $essoa.colunasB nullB nullB nullB nullB nullB nullH= E catch G&P/2xception eH > /og.eG#-52VC3.-B "2rro ao "uscar as pessoas: " 7 e.to&tringGHH= return null= E E 3etorna uma lista com todas as pessoas pu"lic /ist<$essoa> listar$essoasGH > #ursor c = get#ursorGH= /ist<$essoa> pessoas = ne) -rra+/ist<$essoa>GH= if Gc.move5oDirstGHH > 3ecupera os Xndices das colunas int idx.d = c.get#olumn.ndexG$essoas.*.AH= return pessoa=

return null=

int idx%ome = c.get#olumn.ndexG$essoas.%C,2H= int idx#pf = c.get#olumn.ndexG$essoas.#$DH= int idxidade = c.get#olumn.ndexG$essoas..A-A2H= /oop atT o final do > $essoa pessoa = ne) $essoaGH= pessoas.addGpessoaH= recupera os atri"utos da pessoa pessoa.id = c.get/ongGidx.dH= pessoa.nome = c.get&tringGidx%omeH= pessoa.cpf = c.get&tringGidx#pfH= pessoa.idade = c.get.ntGidxidadeH= E )hile Gc.move5o%extGHH= E E return pessoas=

4usca a pessoa pelo nome "select I from pessoa )here nome=?" pu"lic $essoa "uscar$essoa$or%omeG&tring nomeH > $essoa pessoa = null= tr+ > .dem a: &2/2#5 *idBnomeBcpfBidade from pessoa )here nome = ? #ursor c = d".:uer+G%C,2*5-42/-B $essoa.colunasB $essoas.%C,2 7 "=Y" 7 nome 7 "Y"B nullB nullB nullB nullH= &e encontrou... if Gc.move5o%extGHH > pessoa = ne) $essoaGH= utiliJa os mTtodos get/ongGHB get&tringGHB get.ntGHB etc para recuperar os valores pessoa.id = c.get/ongG0H= pessoa.nome = c.get&tringG1H= pessoa.cpf = c.get&tringG8H= pessoa.idade = c.get.ntG;H= E E catch G&P/2xception eH > /og.eG#-52VC3.-B "2rro ao "uscar a pessoa pelo nome: " 7 e.to&tringGHH= return null= E E return pessoa=

4usca uma pessoa utiliJando as configuraNZes definidas no &P/itePuer+4uilder 0tiliJado pelo #ontent $rovider de pessoa pu"lic #ursor :uer+G&P/itePuer+4uilder :uer+4uilderB &tring?@ proKectionB &tring selectionB &tring?@ selection-rgsB &tring group4+B &tring havingB &tring order4+H > #ursor c = :uer+4uilder.:uer+Gthis.d"B proKectionB selectionB selection-rgsB group4+B havingB order4+H= return c= E Decha o "anco pu"lic void fecharGH >

fecha o "anco de dados if Gd" S= nullH > d".closeGH= E E E

$ ora a classe &epositorioPessoa'cript da se uinte maneira .


pac!age com."r.#ad$essoa= import android.content.#ontext= pu"lic class 3epositorio$essoa&cript extends 3epositorio$essoa > &cript para faJer drop na ta"ela private static final &tring &#3.$5*A-5-4-&2*A2/252 = "A3C$ 5-4/2 .D 2R.&5& pessoa"= #ria a ta"ela com o "*id" se:uencial private static final &tring?@ &#3.$5*A-5-4-&2*#32-52 = ne) &tring?@ > "create ta"le pessoa G *id integer primar+ !e+ autoincrementB nome text not nullBcpf text not nullBidade text not nullH="B "insert into pessoaGnomeBcpfBidadeH valuesGY[eferson \ontaYBY18;918;;8;;8YB81H="B "insert into pessoaGnomeBcpfBidadeH valuesGY-m"roJio silvaYBY]<^89]<9]<9YB<0H="B "insert into pessoaGnomeBcpfBidadeH valuesGY2dinando -.YBY]9<]<;1]<]YB1_H=" E= %ome do "anco private static final &tring %C,2*4-%#C = ""aco*dados"= #ontrole de versMo private static final int '23&-C*4-%#C = 1= %ome da ta"ela pu"lic static final &tring 5-42/-*$2&&C- = "pessoa"= #lasse utilitLria para a"rirB criarB e atualiJar o "anco de dados private &P/ite1elper d"1elper= #ria o "anco de dados com um script &P/ pu"lic 3epositorio$essoa&criptG#ontext ctxH > #riar utiliJando um script &P/ d"1elper = ne) &P/ite1elperGctxB 3epositorio$essoa&cript.%C,2*4-%#CB 3epositorio$essoa&cript.'23&-C*4-%#CB 3epositorio$essoa&cript.&#3.$5*A-5-4-&2*#32-52B 3epositorio$essoa&cript.&#3.$5*A-5-4-&2*A2/252H= a"re o "anco no modo escrita para poder alterar tam"Tm d" = d"1elper.get`rita"leAata"aseGH= E Decha o "anco (Cverride pu"lic void fecharGH > super.fecharGH= if Gd"1elper S= nullH > d"1elper.closeGH= E E

% en-im a classe '(#ite)elper .


pac!age com."r.#ad$essoa= import import import import android.content.#ontext= android.data"ase.s:lite.&P/iteAata"ase= android.data"ase.s:lite.&P/iteCpen1elper= android.util./og=

class &P/ite1elper extends &P/iteCpen1elper > private static final &tring #-52VC3.- = "livro"= private &tring?@ script&P/#reate= private &tring script&P/Aelete= II I #ria uma instOncia de &P/ite1elper I I (param context I (param nome4anco nome do "anco de dados I (param versao4anco versMo do "anco de dados Gse for diferente T para atualiJarH I (param script&P/#reate &P/ com o create ta"le.. I (param script&P/Aelete &P/ com o drop ta"le... I &P/ite1elperG#ontext contextB &tring nome4ancoB int versao4ancoB &tring?@ script&P/#reateB &tring script&P/AeleteH > superGcontextB nome4ancoB nullB versao4ancoH= this.script&P/#reate = script&P/#reate= this.script&P/Aelete = script&P/Aelete= E (Cverride #riar novo "anco... pu"lic void on#reateG&P/iteAata"ase d"H > /og.iG#-52VC3.-B "#riando "anco com s:l"H= int :tde&cripts = script&P/#reate.length= 2xecuta cada s:l passado como parOmetro for Gint i = 0= i < :tde&cripts= i77H > &tring s:l = script&P/#reate?i@= /og.iG#-52VC3.-B s:lH= #ria o "anco de dados executando o script de criaNMo d".exec&P/Gs:lH= E

(Cverride ,udou a versMo... pu"lic void on0pgradeG&P/iteAata"ase d"B int versao-ntigaB int nova'ersaoH > /og.)G#-52VC3.-B "-tualiJando da versMo " 7 versao-ntiga 7 " para " 7 nova'ersao 7 ". 5odos os registros serMo deletados."H= /og.iG#-52VC3.-B script&P/AeleteH= Aeleta as ta"elas... d".exec&P/Gscript&P/AeleteH= #ria novamente... on#reateGd"H= E E

5 sistema -icar da se uinte maneira .

Você também pode gostar