Hola, tengo un incoveniente no puedo guardar datos en la base de datos, nose que parte del codigo puede llegar a estar mal.
No puedo guardar los datos que coloco en un formulario
Para guardar envio el formario con submit, pero no me guarda nada creo que no me crea un id en la tabla, actualizar me funciona pero insertar(GUARDA nuevos datos) no.
Vista
Código java:
Ver original<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.ArrayList,java.util.Iterator,java.util.List"%>
<%@page import="modelo.Musica"%>
<%!List<Musica> musicas; %>
<html>
<head>
<script type="text/javascript">
function enviarFormulario(idOperacion,idValor){
document.getElementById("operacion").value = idOperacion;
document.getElementById("id").value = idValor;
document.getElementById('formModelo').submit();
}
</script>
<jsp:useBean id="musica" class="modelo.Musica" scope="request"/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Musica</title>
</head>
<body bgcolor="#DCDCDC">
<form name="formModelo" method="post" action="./Musica">
<input type="text" name="id" id="id" maxlength="20" size="20"
value="<jsp:getProperty name="musica" property="id"/>">
<input type="text" name="operacion" id="operacion" value="GUARDAR">
<table>
<tr>
<th>Tema: </th>
<td>
<input type="text" name="nombre"
value="<jsp:getProperty property="nombre" name="musica"/>">
</td>
<th>Duración: </th>
<td>
<input type="text" name="duracion"
value="<jsp:getProperty property="duracion" name="musica"/>">
</td>
</tr>
</table>
<input value="Guardar" type="submit" value="GUARDAR">
</form>
<!-- Lista de la base de datos -->
<%
try{
musicas = (List<Musica>)request.getAttribute("musicas");
if(musicas != null && musicas.size()>0){
int i = 0;
while(musicas.size()>i){
Musica mus =(Musica)musicas.get(i);
%>
<%=mus.getNombre()%>
<a href="#" onclick="enviarFormulario('ELIMINAR','<%=mus.getId()%>')"> eliminar </a> |
<a href="#" onclick="enviarFormulario('MODIFICAR','<%=mus.getId()%>')"> modificar </a>
<br>
<%
i++;
}
}
e.printStackTrace();
}
%>
</body>
</html>
Controler
Código java:
Ver originalprotected void doPost
(HttpServletRequest request, HttpServletResponse response
) throws ServletException,
IOException { Musica musica = new Musica();
try{
String operacion
= request.
getParameter("operacion"); if(!request.getParameter("id").equals("null")&&!request.getParameter("id").equals(" ")){
id
= new Integer(request.
getParameter("id")); }
/*Nombre*/ musica.setNombre(request.getParameter("nombre"));
/*Duración*/ musica.
setDuracion(Integer.
parseInt(request.
getParameter("duracion"))); /*Id*/ // musica.setId(id);
if(operacion.equals("GUARDAR")){
music.guardarMusica(musica);
}
if(operacion.equals("MODIFICAR")){
request.setAttribute("musica", music.getMusica(id));
}
if(operacion.equals("ELIMINAR") && id!=null){
musica.setId(id);
music.eliminarMusica(musica);
}
System.
out.
println("Ubicacion "+e.
getStackTrace()); }
doGet(request,response);
}
Codigo para guardar datos
Código java:
Ver originalpublic void guardarMusica(Musica musica) {
try{
conn = getData().getConnection();
if (musica.getId()!=null){
ps = conn.prepareStatement(SQL.UPDATE_MUSICA);
ps.setString(1, musica.getNombre());
ps.setString(2, musica.getArtista());
ps.setString(3, musica.getAlbum());
ps.setString(4, musica.getGenero());
ps.setInt(5, musica.getDuracion());
ps.setInt(6, musica.getAnio());
ps.setInt(7, musica.getId());
ps.executeUpdate();
}else{
ps = conn.prepareStatement(SQL.INSERT_MUSICA);
ps.setString(1, musica.getNombre());
ps.setString(2, musica.getArtista());
ps.setString(3, musica.getAlbum());
ps.setString(4, musica.getGenero());
ps.setInt(5, musica.getDuracion());
ps.setInt(6, musica.getAnio());
ps.executeUpdate();
rs.close();
ps.close();
}
ps.close();
conn.close();
System.
out.
println(e.
getMessage()); }
}
Sentencia SQL
Código:
static final String INSERT_MUSICA = "INSERT INTO MUSICA (NOMBRE, ARTISTA, ALBUM, GENERO, DURACION, ANIO) VALUES (?,?,?,?,?,?)";
static final String UPDATE_MUSICA = "UPDATE MUSICA SET NOMBRE=?, ARTISTA=?, ALBUM=?, GENERO=?, DURACION=?, ANIO=? WHERE ID=?";
Edito: No me guarda la informacion en la Base de datos.