Olá pessoal.
Estou criando um pequeno sistema de clínica médica em JSP.
Mas estou com problema na hora de cadastrar médicos.
Ele está cadastrando Pacientes e Exames, mas não está cadastrando os Médicos.
Sozinha ainda não consegui identificar o erro.
Será que vocês poderiam me ajudar com isso?
Esse é o meu formulário para cadastrar médico: FormularioMedico.jsp
[code]<%@ page contentType=“text/html” language=“java” import=“java.sql.*”%>
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=ISO-8859-1”>
<title>Insert title here</title>
</head>
<%
Connection con = null;
Statement st = null;
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/scm”,“root”, “1234”);
st = con.createStatement();
} catch (Exception e) {
out.println("Não foi possível conectar ao banco: " + e.getMessage());
}
%>
<body>
<SCRIPT language=JavaScript>
function validar(formulario) {
if (formulario.tfNomeMedico.value == ‘’){
alert (‘O campo Nome não pode ficar em branco’);
formulario.tfNomeMedico.focus();
return false;
}
if (formulario.tfCrm.value == ''){
alert ('O campo Crm não pode ficar em branco');
formulario.tfCrm.focus();
return false;
}
return true;
}
</SCRIPT>
<%
int id = -1;
int medico_id = -1;
String idp = (String)request.getParameter(“medico_id”);
if ( idp != null) medico_id = Integer.parseInt(idp);
String nome = “”;
String crm = “”;
//variavel que vai receber o valor selecionado no list/menu
String exame = “”;
String sql;
if (medico_id != -1){ //buscar no banco o exame
sql = "select * from medico where medico_id = "+medico_id;
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
nome = rs.getString("nome");
crm = rs.getString("crm");
exame = rs.getString("exame");
}
}
%>
<table width=“780” border=“1” align=“center”>
<tr>
<td></td>
</tr>
<tr>
<td><form name=“form1” method=“post” action=“CadastrarMedico.jsp”>
<input name=“tfId” type=“hidden” id=“tfId” value="<%=medico_id%>">
<label>Nome do Médico</label>
<label>
<input name=“tfNomeMedico” type=“text” id=“tfNomeMedico”>
</label>
<label>Crm</label>
<label>
<input name=“tfCrm” type=“text” id=“tfCrm”>
</label>
Exame
<label>
<select name=“cbExameMedico” id=“cbExameMedico”>
<%
sql = "select * from exame";
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {%>
<option value=<%=rs.getString("exame_id") %>><%=rs.getString("descricao") %></option><%
}
if ((id != -1) && (exame.equals(""))) out.println("selected");
%>
</select>
</label>
</p>
<p>
<label>
<input name="btCadastraMedico" type="submit" id="btCadastraMedico" value="Cadastrar">
<input name="frmMedico_id" type="hidden" value="<%=medico_id%>">
</label>
<label>
<input name="btCancelaMedico" type="submit" id="btCancelaMedico" value="Cancelar">
</label>
</p>
</form>
</td>
</tr>
</table>
</body>
</html>
[/code]
E essa é a minha classe responsável por realizar o cadastro: CadastrarMedico.jsp
<%@ page contentType="text/html" language="java" import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
int medico_id = -1;
String sID = (String)request.getParameter("frmMedico_id");
if (sID != null) medico_id = Integer.parseInt(sID);
int id = Integer.parseInt(request.getParameter("tfId"));
String nome = request.getParameter("tfNomeMedico");
String crm = request.getParameter("tfCrm");
String exame = request.getParameter("cbExameMedico");
int IdExame;
//int exame = (Integer.parseInt(request.getParameter("cbExameMedico")));
//exame = cbExameMedico.SelectedValue.ToString();
//OIDProduto = cmbProduto.SelectedValue.ToString();
String sql;
String msn = "";
Connection con;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/scm","root", "1234");
Statement st = con.createStatement();
//select para pegar o ID do exame
sql = "select exame_id from exame where exame =" +exame;
//variavel IdExame recebe o valor de sql
IdExame = Integer.parseInt(sql);
if (medico_id == -1) {//cadastrar
sql = "insert into medico(nome,crm,exame_id)values('"+
nome+"','"+
crm+"','"+
IdExame+"')";
msn = "medico cadastrado com sucesso";
}else { //atualizar
sql = "update medico set nome = '"+nome+
", crm = '"+crm+", exame_id = '"+IdExame+"where medico_id = "+medico_id;
msn = "Medico atualizado com sucesso";
}
st.executeUpdate(sql);
} catch (Exception e) {
msn = "Não foi possível conectar ao banco: " + e.getMessage();
}
%>
</body>
</html>
Desde já, muito obrigado!