Pessoal,
Boa tarde!
Estou tentando salvar os dados em uma tabela que contém o ID do Administrador como chave estrangeira e não estou conseguindo.
Eu consigo passar o ID do admin para o formulário de cadastro depois de logar, porém, não consigo enviar este ID que está na sessão para o meu DAO e para o meu servlet de cadastro.
Por favor amigos, preciso de uma força do pessoal mais experiente para me ajudar nisto.
Muito obrigado mesmo.
Segue a estrutura do banco e do projeto.
CREATE TABLE `tipo_livro` (
`idtipo_livro` INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`administrador_idadministrador` INTEGER(10) UNSIGNED NOT NULL,
`tipNome` VARCHAR(60) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
PRIMARY KEY (`idtipo_livro`),
KEY `tipo_livro_FKIndex1` (`administrador_idadministrador`),
CONSTRAINT `tipo_livro_fk` FOREIGN KEY (`administrador_idadministrador`) REFERENCES `administrador` (`idadministrador`)
)ENGINE=InnoDB
AUTO_INCREMENT=1 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';
CREATE TABLE `administrador` (
`idadministrador` INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`admNome` VARCHAR(60) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
`admLogin` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
`admSenha` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
`admCod` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
PRIMARY KEY (`idadministrador`)
)ENGINE=InnoDB
AUTO_INCREMENT=2 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';
Meu servlet
package com.romafa.controller;
import com.romafa.bean.TipoLivroBean;
import com.romafa.dao.TipoLivroDAO;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Fabiano
*/
public class TipoLivroServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
TipoLivroBean tipoLivroBean = new TipoLivroBean();
RequestDispatcher rd;
//String teste = request.getParameter("ID"); Seria desta forma?
String tipNome = request.getParameter("tipNome");
tipoLivroBean.getAdministrador();
tipoLivroBean.setTipNome(tipNome);
TipoLivroDAO tipoLivroDAO = new TipoLivroDAO();
try {
if(tipoLivroDAO.adicionaTipoLivro(tipoLivroBean))
{
rd = request.getRequestDispatcher("/cadastrarTipoLivro.jsp");
rd.forward(request, response);
}
else
{
rd = request.getRequestDispatcher("/adm/index.jsp");
rd.forward(request, response);
}
} catch (Exception ex) {
out.println(ex);
}
}
}
Meus Beans
package br.com.bookstore.bean;
/**
*
* @author Fabiano
*/
public class PessoaBean {
private String nome;
private String login;
private String senha;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
package br.com.bookstore.bean;
/**
*
* @author Fabiano
*/
public class AdministradorBean extends PessoaBean{
private int idAdmin;
private String codAdm;
public String getCodAdm() {
return codAdm;
}
public void setCodAdm(String codAdm) {
this.codAdm = codAdm;
}
public int getIdAdmin() {
return idAdmin;
}
public void setIdAdmin(int idAdmin) {
this.idAdmin = idAdmin;
}
}
package br.com.bookstore.bean;
/**
*
* @author Fabiano
*/
public class TipoLivroBean {
private int idTipoLivro;
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdTipoLivro() {
return idTipoLivro;
}
public void setIdTipoLivro(int idTipoLivro) {
this.idTipoLivro = idTipoLivro;
}
}
Meu DAO
package com.romafa.dao;
import java.sql.Connection;
import com.romafa.bean.TipoLivroBean;
import com.romafa.conexao.Conexao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author Fabiano
*/
public class TipoLivroDAO {
public boolean adicionaTipoLivro (TipoLivroBean tipoLivroBean) throws SQLException{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = Conexao.getConexao();
String insere = "INSERT INTO tipo_livro (administrador_idadministrador, tipNome) VALUES (?, ?)";
ps = conn.prepareStatement(insere);
// DUVIDA: como pegar o id da sessao aqui?
ps.setString(1, tipoLivroBean.getTipNome());
ps.executeUpdate();
return true;
} catch (Exception e) {
rs.close();
ps.close();
conn.close();
return false;
}
finally
{
rs.close();
ps.close();
conn.close();
}
}
}
Meu JSP
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" session="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>::: ROMAFA BOOK STORE :::</title>
<link href="../estilo/estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="1024" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="../img/logo.jpg" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
<div id="menu_principal">
<img src="../img/seta.jpg" /> <a href="tipolivros.jsp">TIPO LIVRO </a>
<img src="../img/seta.jpg" /> <a href="livros.jsp">LIVROS </a>
<img src="../img/seta.jpg" /> <a href="tipopagamento.jsp">TIPO PAGAMENTO </a>
<img src="../img/seta.jpg" /> <a href="relatorios.jsp">RELATÓRIOS </a>
<img src="../img/seta.jpg" /> <a href="logout.jsp">SAIR </a>
</div>
</td>
</tr>
<tr>
<td><img src="../img/banner.jpg" width="1024" height="159" /></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td valign="top"><form id="form1" name="cadastrarTipoLivro" method="post" action="TipoLivroServlet">
<%= session.getAttribute("ID") %>
<table width="41%" border="0" align="center">
<tr>
<td colspan="2">CADASTRAR TIPO DO LIVROS</td>
</tr>
<tr>
<td width="19%">NOME:</td>
<td width="81%"><input name="tipNome" type="text" id="tipNome" size="40" maxlength="60" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="button" id="button" value="Enviar" />
<input type="reset" name="button2" id="button2" value="Limpar" />
</td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center"><img src="../img/rodape_adm.jpg" /></td>
</tr>
</table>
</body>
</html>