Duvida sobre sintaxe[resolvido]

Bom dia estou com a seguinte duvida de sintaxe

O operador ? (nao sei se eh realmente um operador ) faz o seguinte caso o rs.Grupal.getString for diferente de null coloca o texto entre aspas simples caso contrario joga null??

StringBuffer insert = new StringBuffer(); insert.append((rsGrupal.getString("COD_ORIGEM") != null ? "'"+rsGrupal.getString("COD_ORIGEM").trim()+"'":"null")+",");

[quote=guialeixo]Bom dia estou com a seguinte duvida de sintaxe

O operador ? (nao sei se eh realmente um operador ) faz o seguinte caso o rs.Grupal.getString for diferente de null coloca o texto entre aspas simples caso contrario joga null??

StringBuffer insert = new StringBuffer(); insert.append((rsGrupal.getString("COD_ORIGEM") != null ? "'"+rsGrupal.getString("COD_ORIGEM").trim()+"'":"null")+",");[/quote]

Sim, é chamado operador ternário

Esse código acima faz o mesmo que

if (rsGrupal.getString("COD_ORIGEM") != null) { insert.append(rsGrupal.getString("COD_ORIGEM").trim()); else { insert.append("null"); }

Muito obrigado ^^

Acho que esse é um dos poucos casos que o ganho de legibilidade com uma variável temporária compensa a existência dessa variável:

[code]String codOrigem = rsGrupal.getString(“COD_ORIGEM”);

StringBuffer insert = new StringBuffer();
insert.append(codOrigem == null ? “null” : “’”+ codOrigem.trim() +"’"))
.append(",");
[/code]
Outra coisa. Não some com + dentro de um stringBuilder. Você está criando um StringBuilder justamente pra não concatenar strings usando o sinal de “+”.

Também me parece errado você ter que dar trim() na leitura do seu BD. Por que já não faz um trim() no cadastro do dado?
Outra possibilidade seria fazer o trim() diretamente no SQL, mas acho que esse tipo de operação não deveria sequer existir na leitura.

[quote=ViniGodoy]Acho que esse é um dos poucos casos que o ganho de legibilidade com uma variável temporária compensa a existência dessa variável:

[code]String codOrigem = rsGrupal.getString(“COD_ORIGEM”);

StringBuffer insert = new StringBuffer();
insert.append(codOrigem == null ? “null” : “’”+ codOrigem.trim() +"’"))
.append(",");
[/code]
Outra coisa. Não some com + dentro de um stringBuilder. Você está criando um StringBuilder justamente pra não concatenar strings usando o sinal de “+”.

Também me parece errado você ter que dar trim() na leitura do seu BD. Por que já não faz um trim() no cadastro do dado?
Outra possibilidade seria fazer o trim() diretamente no SQL, mas acho que esse tipo de operação não deveria sequer existir na leitura.[/quote]

é que eu to interpretando o codigo para o meu chefe, fazendo uma documentação do que que o codigo faz nao foi eu que o fiz =) mas muito obrigado pela dica irei lembrar

[quote=ViniGodoy]
Também me parece errado você ter que dar trim() na leitura do seu BD. Por que já não faz um trim() no cadastro do dado?
Outra possibilidade seria fazer o trim() diretamente no SQL, mas acho que esse tipo de operação não deveria sequer existir na leitura.[/quote]
Isso depende da BD.
Já tive muitas dores de cabeça por causa disso. Trabalho com uma BD que não é da minha responsabilidade (Informix) e os campos foram criados como CHAR mesmo quando deveriam ser VARCHAR.
Ao ler “OLA” de dentro de um CHAR (6) ele vai devolver "OLA   ".

[quote=pmlm][quote=ViniGodoy]
Também me parece errado você ter que dar trim() na leitura do seu BD. Por que já não faz um trim() no cadastro do dado?
Outra possibilidade seria fazer o trim() diretamente no SQL, mas acho que esse tipo de operação não deveria sequer existir na leitura.[/quote]
Isso depende da BD.
Já tive muitas dores de cabeça por causa disso. Trabalho com uma BD que não é da minha responsabilidade (Informix) e os campos foram criados como CHAR mesmo quando deveriam ser VARCHAR.
Ao ler “OLA” de dentro de um CHAR (6) ele vai devolver "OLA   ".[/quote]

Isso é um job e ele ta executando normal, entao no que esta funcionando nao se meche mto ne, a estrutura do banco nao conheço