Como obter resultado de uma string que está dentro de um if, em outra classe?

12 respostas
java
A
public void gerarIdEstudante(String curso) {

Connection con = getConnection();

PreparedStatement pst = null;

ResultSet rs = null;

String sql = select auto_increment from information_schema.tables where table_name = 'tbl_estudanteand table_schema = ispmDataBase’”;

try {

pst = con.prepareStatement(sql);

while (rs.next()) {

int proximoId;

proximoId = rs.getInt(1);

System.out.println(Proximo: " + proximoId);

//Curso/Ano/Mes/ID

//INF-216(id)

//Pega Data Atual ano-mes-dia

LocalDateTime agora = LocalDateTime.now();

DateTimeFormatter formatterData = DateTimeFormatter.ofPattern(“yyyy/MM/dd”);

String dataFormatada = formatterData.format(agora);

//Formatacao da data

char ano = dataFormatada.charAt(2);//Primeiro numero do ano

char ano1 = dataFormatada.charAt(3);//Segundo numero do ano

char mes1 = dataFormatada.charAt(5);//Mes

char mes = dataFormatada.charAt(6);//Mes

System.out.println(dataFormatada);

//Curso

//Informatica/Hotelaria/Biologia

char curso1 = curso.charAt(0);

//char curso2 = curso.charAt(1);

//char curso3 = curso.charAt(2);

//Compilacao de Tudo

//Colocando em letras maiusculas

String idNovo = (”" + curso1 + ano + ano1 + mes1 + mes + proximoId).toUpperCase();

//Output

System.out.println(idNovo);
}
    } catch (SQLException e) {

    }

}

Eu quero retornar esse idNovo dentro de outra classe, por estar dentro de um while, ou if, não resulta ! Ajuda por favor!

12 Respostas

R

Mude o retorno do método para String e use return idNovo;

A

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

Sim, você sempre tem que retornar algo.
Se não conseguir gerar o ID qual é o comportamento desejado? Dar um erro? Retornar null?

A

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.

R
String foo = "bar";
while(condicao) {
    //Codigo
    foo += "???";
}
return foo;
A

Desculpe ser muito chato amigo, instanciando em outra classe, ele retorna sempre nullExeption.
O codigo com seu contributo esta assim:

public String gerarIdEstudante(String curso) {

Connection con = getConnection();

PreparedStatement pst = null;

ResultSet rs = null;

String sql = select auto_increment from information_schema.tables where table_name = 'tbl_estudanteand table_schema = ispmDataBase’”;

String idNovo = “”;

try {

pst = con.prepareStatement(sql);

while (rs.next()) {

int proximoId = rs.getInt(1);

System.out.println(Proximo: " + proximoId);

//Curso/Ano/Mes/ID

//INF-216(id)

//Pega Data Atual ano-mes-dia

LocalDateTime agora = LocalDateTime.now();

DateTimeFormatter formatterData = DateTimeFormatter.ofPattern(“yyyy/MM/dd”);

String dataFormatada = formatterData.format(agora);

//Formatacao da data

char ano = dataFormatada.charAt(2);//Primeiro numero do ano

char ano1 = dataFormatada.charAt(3);//Segundo numero do ano

char mes1 = dataFormatada.charAt(5);//Mes

char mes = dataFormatada.charAt(6);//Mes

System.out.println(dataFormatada);

//Curso

//Informatica/Hotelaria/Biologia

char curso1 = curso.charAt(0);

//Colocando em letras maiusculas

idNovo = (”" + curso1 + ano + ano1 + mes1 + mes + proximoId).toUpperCase();

//Output

System.out.println(idNovo);
}
    } catch (SQLException e) {
    }
    return idNovo;
}
A

Me desculpe a bagunça por favor.

R

Null
Você não está executando sua query nem atribuindo o ResultSet nessa variável.

A

Infelizmente está gerando sempre null, muito obrigado pela ajuda, vou tentar rever, porque o metodo retorna nulo

R

Retornando null ou jogando NullPointerException?

A

Está jogando um NullPointerException, amigo.

R

Você corrigiu o problema que eu falei?

rs = pst.executeQuery();
Criado 17 de abril de 2021
Ultima resposta 17 de abr. de 2021
Respostas 12
Participantes 2