Pessoal estou começando no Java e estou com a seguinte dúvida.
String CodLanc = request.getParameter("tabid");
String lancamento = new String(CodLanc);
System.out.println(lancamento);
Por que “lancamento” não consegue receber o valor de “CodLanc”?
Mas por que isso?
Faz direto
String CodLanc = request.getParameter("tabid");
System.out.println(CodLanc);
Outra coisa, a nomenclatura para variáveis diz que ele precisa começar com letra minúscula.
porque o “CodLanc” recebe por exemplo CodLanc=“1378416,1263519,1239015,1244291”. E eu preciso quebrar esses números por vŕgula
Meu código
[code]package CmdExec;
import java.sql.;
import javax.servlet.http.;
import SubMacroUtils.Erro;
import SubMacroUtils.FormatDate;
import SubMacroUtils.Geral;
import java.util.StringTokenizer;
/**
-
Unigates
-
@author DTI - Unimedms
*/
public class CmdExecExcluirLanc extends CmdExecDefault {
public boolean execute(HttpServletRequest request, HttpServletResponse response) {
// obtendo dados padrao
setDefaultDBParameters(request, response);
//
try {
String CodLanc = (getParameter(request, "tabid"));
String teste = CodLanc;
String datahora = FormatDate.getDataAtualFormatDateTime();
// executar alguma operacao e retornar HTML via AJAX
StringBuilder HTMLBuf = new StringBuilder();
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-cache");
StringBuilder sql = new StringBuilder("select distinct ra.rga_nome_arquivo as arquivo, ra.rga_documento as fatura from ung_registros_arquivos ra where ra.rga_lar_numero_importacao in "
+ "(select l.lan_numero_importacao from ung_lancamentos l where l.lan_cod_lancamento in (" + CodLanc + "))");
PreparedStatement pstmt = connLocal.prepareStatement(sql.toString());
ResultSet ps = pstmt.executeQuery();
while (ps.next()) {
String arquivo = ps.getString("arquivo");
StringTokenizer valores = new StringTokenizer(teste, ",");
while (valores.hasMoreTokens()) {
String valor = valores.nextToken();
CallableStatement cs = connLocal.prepareCall("{? = call F_REMOVELANCAMENTOS(?,?,?,?)}");
cs.registerOutParameter(1, java.sql.Types.INTEGER);
cs.setString(2, valor);
cs.setString(3, null);
cs.setString(4, null);
cs.setString(5, null);
cs.execute();
cs.close();
int retfunc = cs.getInt(1);
CallableStatement cs1 = connLocal.prepareCall("{? = call F_EXCLUI_A500(?)}");
cs1.registerOutParameter(1, java.sql.Types.INTEGER);
cs1.setString(2, arquivo);
cs1.execute();
cs1.close();
int retfunc01 = cs1.getInt(1);
String MsgLog = " CmdExecExcluirLanc fatura = " + ps.getString("fatura") + " Arquivo: " + arquivo + " Usuario logado: " + usuario + " Retorno da F_EXCLUI_A500: " + retfunc01 + " Retorno da F_REMOVELANCAMENTOS: " + retfunc + " - " + datahora;
Geral.SaveLog(connLocal, servlet.getProperty("SQLCodUsuario"), "E", "Usuario-> " + usuario + MsgLog, usuario, "CmdExecExcluirLanc", servlet.getProperty("NomeTabelaLog"), servlet.getProperty("DbName"));
if (retfunc == 1 || retfunc01 == 1) {
HTMLBuf.append("Ação processada com sucesso...\n");
HTMLBuf.append("A fatura com código: " + CodLanc + " foi excluida com sucesso");
} else {
HTMLBuf.append("Registro não encontrado!");
}
}
}
response.getWriter().write(Geral.TirarAcentos(HTMLBuf.toString()));
return true;
} catch (Exception e) {
Erro.GerarException(e, NomeArqException, DebugException, "CmdExecExcluirLanc");
return false;
}
}
}
[/code]
Desculpe minha ignorância. Mas como seria o split?
String[] str = CodLanc.split(",");
drsmachado vou tentar do jeito que me falou, depois coloco o resultado
drsmachado funcionou! muito obrigado pela dica
Em Java é falta de educação criar variáveis iniciadas com letra maiúscula!
Com certeza.
Primeira letra maiúscula apenas quando se trata de Classe ou CONSTANTE, que, convenciona-se, seja toda em letras maiúsculas.
ex:
[code]public static void main(String[] args) {
String exemplo = "a|b|c|d|e|f";
String[] temp = StringUtils.split(exemplo, "|");
for (int i = 0; i < temp.length; i++) {
System.out.println( temp[i]);
}
} [/code]
Fonte: http://www.guj.com.br/java/42204-metodo-split-da-classe-string
Entendeu?
ex:
[code]public static void main(String[] args) {
String exemplo = "a|b|c|d|e|f";
String[] temp = StringUtils.split(exemplo, "|");
for (int i = 0; i < temp.length; i++) {
System.out.println( temp[i]);
}
} [/code]
Fonte: http://www.guj.com.br/java/42204-metodo-split-da-classe-string
Entendeu?[/quote]
Só lembrando que
split("|");
Não funciona. Ele irá separar caracter a caracter.
Agora
split("\|");
Funciona.