Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2014, 13:55
nekooSu
 
Fecha de Ingreso: junio-2014
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
Exclamación java.sql.SQLException: Before start of result set

Holaaa, necesito ayuda urgente....se trata de una base de datos de una biblioteca en la que tengo que añadir nuevos libros comprobando primeramente si existe y esas cosas.....la verdad es que no se mucho de java y me estoy volviendo loca....
Si alguien pudiera ayudarmeee!!!!!

este es mi código:
Código Java:
Ver original
  1. import java.io.*;
  2. import java.sql.*;
  3. import javax.servlet.http.*;
  4.  
  5. public class Anyadir extends HttpServlet{
  6.     public void doPost(HttpServletRequest req, HttpServletResponse res){
  7.        
  8.         Connection con;
  9.         Statement st1,st2;
  10.         ResultSet rs;
  11.         String SQL;
  12.         PrintWriter out;
  13.         String autor;
  14.         String titulo;
  15.         String tema;
  16.         String publicado;
  17.         String editorial;
  18.         String referencia;
  19.         String situacion;
  20.        
  21.         int idautor = 0;
  22.         int idlibro = 0;
  23.         int idtema = 0;
  24.         int ideditorial = 0;
  25.        
  26.                
  27.         try{
  28.             Class.forName("com.mysql.jdbc.Driver");
  29.         }
  30.         catch(Exception e){
  31.             System.out.println(e);
  32.         }
  33.         try{
  34.             autor = req.getParameter("autor");
  35.             titulo = req.getParameter("titulo");
  36.             tema = req.getParameter("tema");
  37.             publicado = req.getParameter("publicado");
  38.             editorial = req.getParameter("editorial");
  39.             referencia = req.getParameter("referencia");
  40.             situacion = req.getParameter("situacion");
  41.            
  42.             //CONEXION
  43.             con = DriverManager.getConnection("jdbc:mysql://localhost:3306/practica3","root","");
  44.             st1 = con.createStatement();
  45.             st2 = con.createStatement();
  46.            
  47.             out = res.getWriter();
  48.             res.setContentType("text/html");
  49.             out.println("<HTML><BODY>");
  50.            
  51.             //Si uno de los campos esta vacío, la operación no podrá realizarse:
  52.             if(autor.equals("") || titulo.equals("") || tema.equals("") || publicado.equals("") || editorial.equals("") || referencia.equals("") || situacion.equals("")){      
  53.                 out.println("<h3>Operacion incorrecta: Debe rellenar todos los campos.</h3>");
  54.                 out.println("<FORM METHOD = GET ACTION = http://localhost:8080/principal/inicio>");
  55.                 out.println("<INPUT TYPE = SUBMIT VALUE = 'Volver a Inicio'></FORM>");
  56.                 out.println("</BODY></HTML>");
  57.                 st1.close();
  58.                 st2.close();
  59.                 con.close();
  60.                 out.close();
  61.             }
  62.            
  63.             else{
  64.                 //LIBRO
  65.                 SQL = "SELECT IdLibro FROM libros WHERE Titulo = '"+titulo+"'";
  66.                 rs = st1.executeQuery(SQL);
  67.                 if(rs.next()){
  68.                             idlibro = rs.getInt("IdLibro");
  69.                             out.println("idlibro ="+idlibro);
  70.                             out.println("<h3>Este libro ya se encuentra en el registro.</h3>");
  71.                             out.println("<FORM METHOD = GET ACTION = http://localhost:8080/principal/inicio>");
  72.                             out.println("<INPUT TYPE = SUBMIT VALUE = 'Volver a Inicio'></FORM>");
  73.                             out.println("</BODY></HTML>");
  74.                             st1.close();
  75.                             st2.close();
  76.                             con.close();
  77.                             out.close();
  78.                 }
  79.                 con.setAutoCommit(false);
  80.                     //AUTOR
  81.                     SQL = "SELECT IdAutores FROM autores WHERE Autor = '"+autor+"'";
  82.                     rs = st1.executeQuery(SQL);
  83.                     if(rs.next()){
  84.                                 idautor = rs.getInt("IdAutores");
  85.                                 out.println("idautor="+idautor);
  86.                     }
  87.                     //si no es porque no existe ese autor y habra que crearlo:
  88.                     //INSERT INTO `admin`.`admin` (`Nombre`, `Contra`) VALUES ('sandra', 'sdsds');
  89.                     SQL = "INSERT INTO autores (Autor) VALUES ('"+autor+"')";
  90.                     st2.executeUpdate(SQL);
  91.                     //st2.close();
  92.                     SQL = "SELECT IdAutores FROM autores WHERE Autor = '"+autor+"'";
  93.                     rs = st1.executeQuery(SQL);
  94.                     idautor = rs.getInt("IdAutores");
  95.                     out.println("idautor="+idautor);                                    
  96.                
  97.                     //TEMA
  98.                     SQL = "SELECT IdTema FROM tema WHERE Tema = '"+tema+"'";
  99.                     rs = st1.executeQuery(SQL);
  100.                     if(rs.next()){
  101.                                 idtema = rs.getInt("IdTema");
  102.                                 out.println("idtema="+idtema);
  103.                     }
  104.                     SQL = "INSERT INTO tema (Tema) VALUES ('"+tema+"')";
  105.                     st2.executeUpdate(SQL);
  106.                     //st2.close();
  107.                     SQL = "SELECT IdTema FROM tema WHERE Tema = '"+tema+"'";
  108.                     rs = st1.executeQuery(SQL);
  109.                     idtema = rs.getInt("IdTema");
  110.                     out.println("idtema="+idtema);
  111.                    
  112.                     //EDITORIAL
  113.                     SQL = "SELECT IdEditorial FROM editorial WHERE Editorial = '"+editorial+"'";
  114.                     rs = st1.executeQuery(SQL);
  115.                     if(rs.next()){
  116.                                 ideditorial = rs.getInt("IdEditorial");
  117.                                 out.println("ideditorial="+ideditorial);
  118.                     }
  119.                     SQL = "INSERT INTO editorial (Editorial) VALUES ('"+editorial+"')";
  120.                     st2.executeUpdate(SQL);
  121.                     //st2.close();
  122.                     SQL = "SELECT IdEditorial FROM editorial WHERE Editorial = '"+editorial+"'";
  123.                     rs = st1.executeQuery(SQL);
  124.                     ideditorial = rs.getInt("IdEditorial");
  125.                     out.println("ideditorial ="+ideditorial);
  126.                    
  127.                     SQL = "INSERT INTO libros (Referencia,Titulo,IdAutor,Publicado,IdTema,IdEditorial,Situacion) VALUES ('"+referencia+"','"+titulo+"','"+idautor+"','"+publicado+"','"+idtema+"','"+ideditorial+"','"+situacion+"')";  
  128.                     st2.executeUpdate(SQL);
  129.                 con.commit();
  130.                 con.setAutoCommit(true);
  131.                 st1.close();
  132.                 st2.close();
  133.                 out.close();
  134.                 con.close();
  135.        
  136.             }
  137.             out.println("<h3>prsdfdsfsfsa.</h3>");
  138.             out.println("<FORM METHOD = GET ACTION = http://localhost:8080/principal/inicio>");
  139.             out.println("<INPUT TYPE = SUBMIT VALUE = 'Volver a Inicio'></FORM>");
  140.             out.println("</BODY></HTML>");
  141.         }
  142.         catch(Exception e){
  143.             System.out.println(e);
  144.             return;
  145.         }
  146.     }
  147. }

Última edición por gnzsoloyo; 05/06/2014 a las 14:13