
Java - Mysql - Consulta Select
Publicado por Rodrigo (3 intervenciones) el 05/11/2016 21:41:23
Hola que tal, me estoy introduciendo a este mundo de java y hay bastantes cosas sencillas que aún no puedo conseguir que funcionen. Muestro mis clases para que vean mi código y después les comento el error:
Mi clase Database
Mi clase Persona que extiende de Database
Mi Servlet
Bueno el problema que me da al ejecutarlo es el siguiente:
HTTP Status 500 - Internal Server Error
type Exception report
messageInternal Server Error
descriptionThe server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.
Me parece que el problema está en la consulta de la base de datos... pero ni siquiera puedo encontrar el log dentro del Netbeans para detallar el error.
ACLARACION: dentro de la clase Database cambie a "localhost" mi ip donde se encuentra alojada la base de datos mysql y también mi usuario y contraseña.
Agradezco desde ya cualquier ayuda que puedan darme. Saludos!
Mi clase Database
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Model;
import java.sql.*;
/**
*
* @author rodri
*/
public class Database {
/* DATOS PARA LA CONEXION */
/** base de datos por defecto es test*/
private String db = "inmobiliariabase";
/** usuario */
private String user = "usuario";
/** contraseña de MySql*/
private String password = "pass";
/** Cadena de conexion */
private String url = "jdbc:mysql://localhost/"+db;
/** variable para trabajar con la conexion a la base de datos */
private Connection conn = null;
/*Contructor*/
public Database() {
this.url = "jdbc:mysql://localhost/"+this.db;
try {
//obtenemos el driver de para mysql
Class.forName("com.mysql.jdbc.Driver");
//obtenemos la conexión
conn = DriverManager.getConnection( this.url, this.user , this.password );
}catch(SQLException | ClassNotFoundException e){
System.err.println( e.getMessage() );
}
}
public Connection getConexion() {
return this.conn;
}
}
Mi clase Persona que extiende de Database
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Model;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author rodri
*/
public final class Persona extends Database {
private String nombre;
private Integer edad;
public String email;
public Persona(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
this.email = this.getEmail();
}
/**
*
* @return
*/
public String getEmail() {
try {
PreparedStatement pstm;
pstm = null;
pstm = this.getConexion().prepareStatement( "SELECT `email` FROM `usuario` WHERE `nombreUsuario` = 'rodrigo'");
ResultSet res;
res = pstm.executeQuery();
this.email = res.getString("email");
} catch (SQLException ex) {
Logger.getLogger(Persona.class.getName()).log(Level.SEVERE, null, ex);
}
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNombre() {
return nombre;
}
public Integer getEdad() {
return edad;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setEdad(Integer edad) {
this.edad = edad;
}
}
Mi Servlet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Controller;
import Model.Persona;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author rodri
*/
public class Procesar extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nombre = request.getParameter("txtNombre");
String edad = request.getParameter("txtEdad");
if(nombre.equals("") || edad.equals("")){
request.getRequestDispatcher("errorVacios.jsp").forward(request, response);
}
else {
int ed = 0;
try{
ed = Integer.parseInt(edad);
}
catch(NumberFormatException ex){
request.getRequestDispatcher("errornumero.jsp").forward(request, response);
}
Persona p1 = new Persona(nombre, ed);
/*Para que el objeto p1 se pueda utilizar en todas las vistas, la
guardarmos en una sesión
*/
request.getSession().setAttribute("persona1", p1);
request.getRequestDispatcher("exito.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Bueno el problema que me da al ejecutarlo es el siguiente:
HTTP Status 500 - Internal Server Error
type Exception report
messageInternal Server Error
descriptionThe server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.
Me parece que el problema está en la consulta de la base de datos... pero ni siquiera puedo encontrar el log dentro del Netbeans para detallar el error.
ACLARACION: dentro de la clase Database cambie a "localhost" mi ip donde se encuentra alojada la base de datos mysql y también mi usuario y contraseña.
Agradezco desde ya cualquier ayuda que puedan darme. Saludos!
Valora esta pregunta


0