Duvida Para faze um If

8 respostas
jpacheco

Bom meu problema e o seguinte

tenho um banco e um arquivo CSV

no banco eu tenho um capo chamado mes o qual qro usar como parametro para saber se os dados dakele mes forma ou não inseridos
e n sei como fazer a comparação com o csv eu tenho uma ideia ja fiz alguns testes mas n da certo!!

tipo eu tenho de fazer um

para ler o arquivo entaum eu pego e faço um

bom dai vem a duvida como passar os parametros??
seria assim

stmtMes.setInt(1, mesCSV);

dai depois eu faço um executeQuery para ele buscar no banco

bom dai q vem a maior das duvidas como eu faria a comparação para ver se mesBanco == mesCSV ??

sendo q o campo do mes no CSV esta como 6 dado??ou seja tem 5 dados e 4 “;” antes dele??

dai ficaria algo assim a comparação??

if(mesBanco == mesCSV){

out.println(Dados ja cadastrados);

} else {

//codigo para inserção

…

}

bom se alguem souber me dar uma luz ai eu fico muito grato valew galera por ter sempre me ajudado ai!!!

8 Respostas

T

Comparação de duas strings deve ser feita com o método equals.

Exemplo:

String s1= "Lula";
String s2= "Alckmin";
if (s1.equals (s2)) {
    ...
}
jpacheco

disso eu sei veio soq tipo isso eu sei com String comuns mas n qndo se tem de fazer uma busca num banco e outra num CSV neh como eu faria a busca neles para fazerr a comparação este seria o detalhe!! sendo q o mes do banco e um int!!!..???

T

Os problemas devem ser resolvidos quebrando-os em pedaços.
Converta o “mesBanco” e o “mesCSV” para o mesmo tipo (ou ambos “int”, ou ambos “String”), e compare-os.
Não dá para comparar diretamente um int com uma String - Java é muito rigoroso nesse ponto.

ClashFM

Não entendi alguns pontos da questão…

Ponto 1
O loop mais externo é para ler as linhas do CSV?

Ponto 2

"SELECT mes FROM custos WHERE mes = ?"

Se vc vai montar esse select, pra que precisa comparar o mes da base com o do csv? Isso já não está sendo feito pelo select?

Esse select, vai trazer o mesmo campo usado como argumento de pesquisa? Vc cortou o comando pra colocar no fórum, ou é isso mesmo?

Se esse é o comando SQL completo, pra que vc precisa de N registros iguais? Não poderia colocar um DISTINCT, ou recuperar COUNT(mes)?

Ponto 3: usar o 6o campo de uma linha do CSV, não é só acessar “dados[5]” depois do split feito?

Cheers

jpacheco

certo eu tbn sei disso!!mas o problema mesmo e fazer a busca no CSV para poder compara-los a busca no banco eu faço mas como eu posso fazer uma busca num arquivo CSV de um respectivo dado??!!!
e entao depois disso poder compara-los!!!

T
  1. Você pode usar o driver ODBC para CSV.
  2. Você pode abrir o arquivo CSV e lê-lo linha por linha. Não é muito elegante mas funciona.
jpacheco

eu ja leio ele linha a linha para inserir no banco mas neste caso eu so vou ler o dado do mes e entaum fazer a comparação e e isto q n sei fazer como eu poderei lar so o dado do mes???

bom dai eu teria de fazer um stm.setInt(6, Integer.parseInt(dados[5])):
??:??? seria isto???

se sim como eu faria a comparação depois???

jpacheco

galera valew ai consegui

valew pela ajuda!!!

Criado 29 de junho de 2006
Ultima resposta 30 de jun. de 2006
Respostas 8
Participantes 3