El Programa funciona pero me salta el siguiente excepcion:
java.lang.NullPointerException
at datos.Conector.main(Conector.java:76)
lo que quiero hacer con este programa es lo siguiente:
el usuario ingresa el curso que quiere dar de alta al alumno si el curso tiene vacantes resta -1 al campo vacantes (lo hace perfectamente) pero despues sale la excepcion solo cuando entra en el if ( if(rs.getInt(1)>0){
)
package datos;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.util.Scanner;
public class Conector {
public static void main(String[] args) {
Connection conn=null;
Statement stmt = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn =(Connection) DriverManager.getConnection("jdbc:mysql://localhost/escuela","root","1234");
stmt =(Statement) conn.createStatement();
System.out.println("Ingrese el curso que desea dar de alta al alumno");
Scanner sc = new Scanner(System.in);
String CursoAlta = sc.next();
String sqlConsult = ("SELECT Vacantes_Curso FROM curso where Nombre_Curso =" + "\"" + CursoAlta + "\"");
rs = stmt.executeQuery(sqlConsult);
rs = stmt.getResultSet();
while(rs.next()){
if(rs.getInt(1)>0){
String sqlConsult2 =("update Curso set Vacantes_Curso = Vacantes_Curso - 1 where Nombre_Curso ="+ "\"" + CursoAlta+ "\"");
stmt.executeUpdate(sqlConsult2);
rs = stmt.getResultSet();
System.out.println("hay vacantes, a continuacion ingrese los siguientes datos!");
}else{
System.out.println("Lo sentimos no hay vacantes!");
}
}
conn.close();
}
catch (Exception e){
e.printStackTrace();
}
}
}
saludos :D
Según esto Conector.java:76 el error es en la línea 76 de la clase Connector.java. Esa línea no está en el trozo de código que has puesto. ¿Cual es exacatamente esa línea?
Se bueno.
esta linea
soy bueno :D
while(rs.next()){
debci o Leyer lo he desfraudado he puesto un doble post :P
vamos q ustedes me pueden dar ideas :D:D:D:D
Si es esa línea, la única opción de que de NullPointerException es que rs sea null. Quita la línea anterior s = stmt.getResultSet(); que no hace falta, ya que el resultset lo obtienes en el exequteQuery()
Se bueno.
si lo saco la linea me dice el siguiente error:
java.sql.SQLException: Operation not allowed after ResultSet closed
saludos