Recursos/JDBC/Conjunto de conexiones/MySQLPool
url: jdbc:mysql://:3306/java
Recursos/JDBC/Recurso JDBC/
Nombre JNDI: jdbc/java
Nombre de conjunto: MySQLPool
Hago un ping y me da correcto.
coneccion a la base de datos
Código:
private DataSource data; private MusicaSQL sql = new MusicaSQL(); private DataSource getData() { if (data == null) { try { Context ctx = new InitialContext(); data = (DataSource) ctx.lookup("jdbc/java"); } catch (NamingException ne) { ne.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } return data; } public List<Musica> getAllMusica() { Connection conn; ArrayList<Musica> allMusica = new ArrayList<Musica>(); try{ conn = getData().getConnection(); PreparedStatement ps = conn.prepareStatement(sql.getSELECT_MUSICA_ALL()); ResultSet rs = ps.executeQuery(); while(rs.next()){ Musica musica = new Musica(); musica.setNombre(rs.getString("NOMBRE")); musica.setArtista(rs.getString("ARTISTA")); musica.setAlbum(rs.getString("ALBUM")); musica.setGenero(rs.getString("GENERO")); musica.setDuracion(rs.getInt("DURACION")); musica.setAnio(rs.getInt("ANIO")); musica.setIdmusica(rs.getInt("ID_MUSICA")); allMusica.add(musica); } rs.close(); ps.close(); conn.close(); }catch(SQLException e){ System.out.println(e.getMessage()); } return allMusica; }
MusicaSQL
Código:
Servlet que accede a las clases que conectan a la base de datosprivate static final String INSERT_MUSICA = "INSERT INTO musica (NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO) VALUES (?,?,?,?,?,?)"; private static final String UPDATE_MUSICA = "UPDATE musica SET NOMBRE=?, ARTISTA=?, ALBUM=?, GENERO=?, DURACION=?, ANIO=? WHERE ID_MUSICA = ?"; private static final String DELETE_MUSICA = "DELETE FROM musica WHERE ID_MUSICA = ?"; private static final String SELECT_MUSICA_BY_ID = " SELECT NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO FROM TABLE_IN_JAVA WHERE ID_MUSICA = ? "; private static final String SELECT_MUSICA_ALL = "SELECT NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO, ID_MUSICA FROM TABLE_IN_JAVA";
Código:
Cuando coloco esto en el metodo dogetprotected void doGet(...)...{ if (request.getAttribute("musicas").equals("null")){ request.setAttribute("musicas", new Musica()); }else{ request.setAttribute("musicas", music.getAllMusica()); } request.getRequestDispatcher("paginas/musica.jsp").forward(request, response); } protected void doPost(...)...{ Musica musica = new Musica(); try{ //Seteo los valores musica.setNombre(request.getParameter("nombre")); musica.setArtista(request.getParameter("artista")); musica.setAlbum(request.getParameter("album")); musica.setGenero(request.getParameter("genero")); musica.setDuracion(Integer.parseInt(request.getParameter("duracion"))); musica.setAnio(Integer.parseInt(request.getParameter("anio"))); musica.setIdmusica(idmusica); music.guardarMusica(musica); //request.setAttribute("id", musica.getIdmusica()); }catch(Exception e){} doGet(request,response); }
Código:
Me muestra if (request.getAttribute("musicas").equals("null")){ request.setAttribute("musicas", new Musica()); }else{ request.setAttribute("musicas", music.getAllMusica()); }
Código:
Parece que no puedo acceder a la base de datos, porque me muestra null cuando quiero mostrar todas las musicas. Estado de HTTP 500 - -------------------------------------------------------------------------------- type Informe de excepción Mensaje Descripción El servidor encontró un error interno () que impide satisfacer la solicitud. Excepción java . lang . NullPointerException