Como obter resultado de uma string que está dentro de um if, em outra classe?
12 respostas
java
A
Adilson_Dopekid
publicvoidgerarIdEstudante(Stringcurso){Connectioncon=getConnection();PreparedStatementpst=null;ResultSetrs=null;Stringsql=“selectauto_incrementfrominformation_schema.tableswheretable_name='tbl_estudante’andtable_schema=‘ispmDataBase’”;try{pst=con.prepareStatement(sql);while(rs.next()){intproximoId;proximoId=rs.getInt(1);System.out.println(“Proximo:" + proximoId);//Curso/Ano/Mes/ID//INF-216(id)//Pega Data Atual ano-mes-diaLocalDateTime agora = LocalDateTime.now();DateTimeFormatter formatterData = DateTimeFormatter.ofPattern(“yyyy/MM/dd”);String dataFormatada = formatterData.format(agora);//Formatacao da datachar ano = dataFormatada.charAt(2);//Primeiro numero do anochar ano1 = dataFormatada.charAt(3);//Segundo numero do anochar mes1 = dataFormatada.charAt(5);//Meschar mes = dataFormatada.charAt(6);//MesSystem.out.println(dataFormatada);//Curso//Informatica/Hotelaria/Biologiachar curso1 = curso.charAt(0);//char curso2 = curso.charAt(1);//char curso3 = curso.charAt(2);//Compilacao de Tudo//Colocando em letras maiusculasString idNovo = (”"+curso1+ano+ano1+mes1+mes+proximoId).toUpperCase();//OutputSystem.out.println(idNovo);
}}catch(SQLExceptione){}}
Eu quero retornar esse idNovo dentro de outra classe, por estar dentro de um while, ou if, não resulta ! Ajuda por favor!
Mude o retorno do método para String e use return idNovo;
A
Adilson_Dopekid
Olá, muito obrigado, até que já fiz isso, mas ele não está dar certo, porque está pedir mais outro retorno fora desse while ou if ! Sendo assim, retorna um null
R
RoinujNosde1 like
Sim, você sempre tem que retornar algo.
Se não conseguir gerar o ID qual é o comportamento desejado? Dar um erro? Retornar null?
A
Adilson_Dopekid
Verdade, estou meio sem orientação para isso.
Bem, a ideia dessa classe, é gerar um ID de estudante, que pega, ano(21), mes(04), essas coisas estão funcionando certo, mas agora, eu coloquei essa busca no banco que pega o proximo numero de autoincrement para concatenar com essas strings. Mas como não estou a conseguir o valor pego dentro desse result set seja por if ou while, tentei fazer desse jeito.
A ideia, é só pegar o valor de um result set que está dentro de um if, ou while, e concatenar com string que está fora desse while ou if, não sei se é possivel.
Desculpe ser muito chato amigo, instanciando em outra classe, ele retorna sempre nullExeption.
O codigo com seu contributo esta assim:
publicStringgerarIdEstudante(Stringcurso){Connectioncon=getConnection();PreparedStatementpst=null;ResultSetrs=null;Stringsql=“selectauto_incrementfrominformation_schema.tableswheretable_name='tbl_estudante’andtable_schema=‘ispmDataBase’”;StringidNovo=“”;try{pst=con.prepareStatement(sql);while(rs.next()){intproximoId=rs.getInt(1);System.out.println(“Proximo:" + proximoId);//Curso/Ano/Mes/ID//INF-216(id)//Pega Data Atual ano-mes-diaLocalDateTime agora = LocalDateTime.now();DateTimeFormatter formatterData = DateTimeFormatter.ofPattern(“yyyy/MM/dd”);String dataFormatada = formatterData.format(agora);//Formatacao da datachar ano = dataFormatada.charAt(2);//Primeiro numero do anochar ano1 = dataFormatada.charAt(3);//Segundo numero do anochar mes1 = dataFormatada.charAt(5);//Meschar mes = dataFormatada.charAt(6);//MesSystem.out.println(dataFormatada);//Curso//Informatica/Hotelaria/Biologiachar curso1 = curso.charAt(0);//Colocando em letras maiusculasidNovo = (”"+curso1+ano+ano1+mes1+mes+proximoId).toUpperCase();//OutputSystem.out.println(idNovo);
}
}catch(SQLExceptione){
}
returnidNovo;
}
A
Adilson_Dopekid
Me desculpe a bagunça por favor.
R
RoinujNosde
Null
Você não está executando sua query nem atribuindo o ResultSet nessa variável.
A
Adilson_Dopekid
Infelizmente está gerando sempre null, muito obrigado pela ajuda, vou tentar rever, porque o metodo retorna nulo