Olá amigos, estou precisando de uma ajuda, tenho um formulario jsp e preciso que os dados depois de preenchidos sejam cadastrados no mysql, e logo após uma servlet exiba esses dados. Já criei o formulario e configurei no net beans o conector .jar do mysql. Seria de muito complexidade esse tipo de sistema? sou iniciante e gostaria de uma ajuda se possível. Ja li milhares de tutoriais e at;e agora nada. um forte abraço a todos.
Cadastrar dados formulario Jsp no mysql
13 Respostas
qual a sua dúvida ?
É fácil sim, usando jsp e servlets você faz rapidinho.
Na jsp vc faz os campos “input’s” e no servlet vc cria a conexão e com request.getParameter captura os dados e depois efetua os “insert’s”, exemplo assim não falta aqui no GUJ.
Boa sorte.
Apostila FJ21 Caelum (www.caelum.com.br) – Primeiro capítulo você aprende e tira de letra ^^
T+
Oláaa
Eu fiz algo parecido…
No formulário JSP na função, vc chama sua servlet…
Eu criei um BDConector que serve para três banco de dados… vc como só quer no mysql considere apenas o mysql
Qualquer coisa só perguntar! 
package Conexao;
import java.sql.*;
public class BDConector
{
private static BDConector instance = null;
private Connection conn = null;
private String banco;
//Construtor que carrega o campo estático conn com uma conexão ao banco.
private BDConector(String tipo) throws Exception
{
banco = tipo;
/*
* Conexão com o Oracle
*
*/
if (banco.equals(“oracle”))
{
try
{
Class.forName(“oracle.jdbc.OracleDriver”);
conn = DriverManager.getConnection(
“jdbc:oracle:thin:@127.0.0.1:1521”, “SYSTEM”, “123456”
);
}
catch(Exception e)
{
throw new Exception(e.getMessage());
}
}
else
if (banco.equals("postgresql"))
{
{
/*
* Conexão com PostGreSQL
*
*/
try
{
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection
(
"jdbc:postgresql://localhost:5432/meubanco", "postgres", "postgres"
);
}catch(Exception e)
{
throw new Exception(e.getMessage());
}
}
}// fim do else
else
if (banco.equals("mysql"))
{
{
/*
* Conexão com MySQL
*
*/
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/teste", "root","");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}// fim do else
}
}
//Método estático que será chamado pelo cliente. Ele só cria uma instância se a
//atual for nula.
public static BDConector getInstance(String tipo) throws Exception
{
if(instance == null)
{
System.out.println(“Instância NOVA criada”);
instance = new BDConector(tipo);
}
else
System.out.println(“Instância JÁ criada”);
return instance;
}
public Connection getConnection()
{
return conn;
}
public static void closeConnection(Statement stmt, ResultSet rs)
throws Exception
{
close(stmt, rs);
}
public static void closeConnection(Statement stmt)
throws Exception
{
close(stmt, null);
}
public static void close(Statement stmt, ResultSet rs)
throws Exception
{
try
{
if(rs != null)rs.close();
if(stmt != null)stmt.close();
}
catch (Exception e)
{
throw new Exception(e.getMessage());
}
}
}
Boa dica Celia , mas nao se esqueça de usar a tag Code , qualquer duvida so olhar o link
afff, eu não sabia heheehe, foi mal… :oops:
É fácil sim, usando jsp e servlets você faz rapidinho.Na jsp vc faz os campos "input's" e no servlet vc cria a conexão e com request.getParameter captura os dados e depois efetua os "insert's", exemplo assim não falta aqui no GUJ.
Boa sorte.
Segue o codigo feito
<body>
<h2>Formulário</h2>
<form action="recebe.jsp" method="POST">
<table>
<tr>
<td> Matrícula </td>
<td><input type="text" size="20" name="matricula"></td> </td>
</tr>
<tr>
<td>Nome</td>
<td><input type="text" size="30" name="nome"></td>
</tr>
<tr>
<td> Email </td>
<td><input type="text" size="30" name="email"></td> </td>
</tr>
<tr>
<td>Telefone</td>
<td><input type="text" size="15" name="telefone"></td>
</tr>
<tr>
<td> <input type="reset" value="Limpar dados"> </td>
<td><input type="submit" value="Enviar dados"></td>
</tr>
</table>
Ao clicar no botão enviar dados o programa deve inserir esses dados cadastrados no mysql e depois exibir em uma servlet o que foi digitado no formulario, estou um pouco perdido com alguns termos, sou bem leigo no assunto. desde já obrigado.
Oláaa Eu fiz algo parecido... No formulário JSP na função, vc chama sua servlet... Eu criei um BDConector que serve para três banco de dados... vc como só quer no mysql considere apenas o mysqlQualquer coisa só perguntar! :wink:
Entendi, então a conexão com o mysql ficaria desta forma?
package Conexao;
import java.sql.*;
public class BDConector
{
private static BDConector instance = null;
private Connection conn = null;
private String banco;
//Construtor que carrega o campo estático conn com uma conexão ao banco.
private BDConector(String tipo) throws Exception
{
banco = tipo;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/teste", "root","");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}// fim do else
}
}
//Método estático que será chamado pelo cliente. Ele só cria uma instância se a
//atual for nula.
public static BDConector getInstance(String tipo) throws Exception
{
if(instance == null)
{
System.out.println("Instância NOVA criada");
instance = new BDConector(tipo);
}
else
System.out.println("Instância JÁ criada");
return instance;
}
public Connection getConnection()
{
return conn;
}
public static void closeConnection(Statement stmt, ResultSet rs)
throws Exception
{
close(stmt, rs);
}
public static void closeConnection(Statement stmt)
throws Exception
{
close(stmt, null);
}
public static void close(Statement stmt, ResultSet rs)
throws Exception
{
try
{
if(rs != null)rs.close();
if(stmt != null)stmt.close();
}
catch (Exception e)
{
throw new Exception(e.getMessage());
}
}
}
Seria isso?
Mas eu criaria esse codigo dentro de qual pagina? na servlet? desculpe minha ignorancia. desde já obrigado.
Apostila FJ21 Caelum (www.caelum.com.br) – Primeiro capítulo você aprende e tira de letra ^^T+
Obrigado pela dica, já estava lendo essa apostila, mas sou leigo no assunto. ainda estou meio perdido. mesmo assim obrigado pela força.
Amigos, já fiz o formulario jsp apontando para o servlet com a conexão, mas depois que preencho o formulario e clico em submit da erro segue abaixo o codigo do servlet.
Obs: Criei package Conecta e a servlet New
package Conecta;
import java.sql.*;
public class New
{
private static New instance = null;
private Connection conn = null;
private String banco;
//Construtor que carrega o campo estático conn com uma conexão ao banco.
private New(String tipo) throws Exception
{
banco = tipo;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/teste", "root","root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}// fim do else
}
}
//Método estático que será chamado pelo cliente. Ele só cria uma instância se a
//atual for nula.
public static New getInstance(String tipo) throws Exception
{
if(instance == null)
{
System.out.println("Instância NOVA criada");
instance = new New(tipo);
}
else
System.out.println("Instância JÁ criada");
return instance;
}
public Connection getConnection()
{
return conn;
}
public static void closeConnection(Statement stmt, ResultSet rs)
throws Exception
{
close(stmt, rs);
}
public static void closeConnection(Statement stmt)
throws Exception
{
close(stmt, null);
}
public static void close(Statement stmt, ResultSet rs)
throws Exception
{
try
{
if(rs != null)rs.close();
if(stmt != null)stmt.close();
}
catch (Exception e)
{
throw new Exception(e.getMessage());
}
}
}
Aonde posso estar errando? desde já agradeço
Qual erro ocorre ?
Da erro quando executa, mas n especifica, estou tentando outro codigo esse…
package Conectar;
import java.sql.*;
public class New {
public static Connection getConnection()throws SQLException
{
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Conectando ao banco");
return DriverManager.getConnection("com.mysql.jdbc.Driver:mysql://localhost/MySql","root","root");
}
catch(ClassNotFoundException erro)
{
throw new SQLException(erro.getMessage(), erro);
}
}
}
Aparece isso depois que clica em submit
HTTP Status 404 - /projeto01/conecta.java
type Status report
message /projeto01/conecta.java
description The requested resource (/projeto01/conecta.java) is not available.
Apache Tomcat/6.0.18
Boa noite!!
Bom esse BDConector é junto com as servlets, mas eu criei uma pasta chamado ‘Conexao’ para não misturar com as servlets, a forma como postou ali está correto…aí na sua servlet correspondente ao seu formulário você faz como o exemplo abaixo eu coloquei Oracle, pq utilizo mais esse…
Qualquer coisa estou aqui 
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
[color=red]import Conexao.BDConector;[/color]
/*import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.util.JRLoader;
*/
/**
* Servlet implementation class ServletDepartamento
*/
public class ServletDepartamento extends HttpServlet
{
private static final long serialVersionUID = 1L;
private BDConector con = null;
public ServletDepartamento()
{
super();
// TODO Auto-generated constructor stub
}
protected void processRequest (HttpServletRequest request, HttpServletResponse response)
throws Exception
{
String action = request.getParameter("escondido");
/*
* O Objeto con, pega uma instância da classe
* BDConector, que é Multi-banco-de-dados,
* podendo ser: oracle, postgresql ou mysql
* Através deste objeto con, pode-se efetuar
* a chamada ao método:
* getConnection()
*
*/
con = BDConector.getInstance("oracle");
try
{
if (action.equalsIgnoreCase("cadastrar"))
{
PrintWriter out = response.getWriter();
out.println("<HTML><BODY><h2>");
out.println("CADASTRAR: <BR><span style=\"color: #FF0000\">");
out.println("Cadastro com Sucesso!");
out.println("</span></h2><BODY><HTML>");
if(request.getParameter("textfield2").equals(""))
{
out.println("Informe o departamento!");
}
try
{
int coddpto=Integer.parseInt(request.getParameter("textfield1"));
String dpto= request.getParameter("textfield2");
Statement curStmt = con.getConnection().createStatement();
ResultSet busca = curStmt.executeQuery("select codigo_departamento from departamento where codigo_departamento = "+coddpto);
if(busca.next()==true)
{
out.println("<br><br><p><h2 align = CENTER>Manutenção de Departamentos</h2></p>");
out.println("<br><br><p><h3 align = CENTER>Departamento já cadastrado.</h3></p>");
}
else
{
boolean res = curStmt.execute("INSERT INTO departamento Values ("+coddpto+",'"+dpto + "')");
curStmt.close();
// A conexão fica aberta
//con.close(); // Fecha a conexão com o Banco de Dados
out.println("<p align='center'><font size='3' face='Verdana'><strong>Cadastro");
out.println("de Departamentos</strong></font></p><hr>");
out.println("<p align='center'><textarea name='S1' rows='6' cols='32'>"+coddpto+","+dpto+",");
out.println("recebemos suas informações em nosso Banco de Dados.");
out.println("");
out.println("Atenciosamente,");
out.println("");
out.println("Controle de Departamentos.</textarea></p>");
}//else
}
catch(SQLException ex)
{
out.println("<p><h3 align = CENTER>Problemas com o banco de Dados!</h3></p>");
out.println(ex);
}
catch(java.lang.Exception ex)
{
out.println("<p><h3 align = CENTER>Erro de Comunicacao!</h3></p>");
out.println(ex);
}
}
else if (action.equalsIgnoreCase("listar"))
{
//actionListarCidadesDesc(request, response);
PrintWriter out = response.getWriter();
out.println("<HTML><BODY><h2>");
out.println("LISTAR: <BR><span style=\"color: #FF0000\">");
out.println("Listado com Sucesso!");
out.println("</span></h2><BODY><HTML>");
try
{
String cor="#FFFFFF";
Statement curStmt = con.getConnection().createStatement();
ResultSet res = curStmt.executeQuery("select * from departamento order by departamento_dep");
out.println("<h1>Lista de Departamentos Cadastrados</h1><br>");
out.println("<table border='0' cellpadding='0' cellspacing='0' bgcolor='#808080' width='500'>");
out.println("<tr>");
out.println("<td><font color='#FFFFFF' face='Verdana'><strong>Código do Departamento</strong></font></td>");
out.println("<td><font color='#FFFFFF' face='Verdana'><strong>Departamento</strong></font></td>");
out.println("</tr>");
while (res.next()==true)
{
out.println("<tr>");
out.println("<td bgcolor='"+cor+"'><font face='Verdana'>"+res.getInt("codigo_departamento")+"</td>");
out.println("<td bgcolor='"+cor+"'><font face='Verdana'>"+res.getString("departamento_dep")+"</td>");
out.println("</tr>");
if(cor.equals("#FFFFFF"))
cor="#C0C0C0";
else
if(cor.equals("#C0C0C0"))
cor="#FFFFFF";
}
curStmt.close();
out.println("</table><br><br>");
}
catch(SQLException ex)
{
out.println("<p><h3 align = CENTER>Problemas com o banco de Dados!</h3></p>");
out.println(ex);
}
catch(java.lang.Exception ex)
{
out.println("<p><h3 align = CENTER>Erro de Comunicacao!</h3></p>");
out.println(ex);
}
}
else
if (action.equalsIgnoreCase("alterar"))
{
PrintWriter out = response.getWriter();
out.println("<HTML><BODY><h2>");
out.println("ALTERAR: <BR><span style=\"color: #FF0000\">");
out.println("Alterado com Sucesso!");
out.println("</span></h2><BODY><HTML>");
try
{
int coddpto=Integer.parseInt(request.getParameter("textfield1"));
String dpto= request.getParameter("textfield2");
Statement curStmt = con.getConnection().createStatement();
ResultSet busca = curStmt.executeQuery("select codigo_departamento from departamento where codigo_departamento = "+coddpto);
if(!busca.next()==true) // caso não encontre o grupo
{
out.println("<br><br><p><h2 align = CENTER>Manutenção de Departamentos</h2></p>");
out.println("<br><br><p><h3 align = CENTER>Não é possível fazer a alteração pois o código não está cadastrado!</h3></p>");
}
else
{
out.print("UPDATE departamento set codigo_departamento="+coddpto+",departamento_dep='"+dpto+"' WHERE CODIGO_DEPARTAMENTO = '" + coddpto+"'");
boolean res = curStmt.execute("UPDATE departamento set codigo_departamento="+coddpto+",departamento_dep='"+dpto+"' WHERE codigo_departamento = '" + coddpto+"'");
curStmt.close();
out.println("<p align='center'><font size='3' face='Verdana'><strong>Cadastro");
out.println("de Departamentos</strong></font></p><hr>");
out.println("<p align='center'><textarea name='S1' rows='6' cols='32'>"+dpto+",");
out.println("ALTERAMOS suas informações em nosso Banco de Dados.");
out.println("");
out.println("Atenciosamente,");
out.println("");
out.println("Controle de Departamentos.</textarea></p>");
}//else
}
catch(SQLException ex)
{
out.println("<p><h3 align = CENTER>Problemas com o banco de Dados!</h3></p>");
out.println(ex);
}
catch(java.lang.Exception ex)
{
out.println("<p><h3 align = CENTER>Erro de Comunicacao!</h3></p>");
out.println(ex);
}
}
else
if (action.equalsIgnoreCase("excluir")) {
//actionListarCidades(request, response);
PrintWriter out = response.getWriter();
out.println("<HTML><BODY><h2>");
out.println("EXCLUIR: <BR><span style=\"color: #FF0000\">");
out.println("Excluído com Sucesso!");
out.println("</span></h2><BODY><HTML>");
try
{
int coddpto=Integer.parseInt(request.getParameter("textfield1"));
String dpto= request.getParameter("textfield2");
Statement curStmt = con.getConnection().createStatement();
ResultSet busca = curStmt.executeQuery("select codigo_departamento from departamento where codigo_departamento = "+coddpto);
if(!busca.next()==true) // caso não encontre o grupo
{
out.println("<br><br><p><h2 align = CENTER>Manutenção de Departamentos</h2></p>");
out.println("<br><br><p><h3 align = CENTER>Não é possível excluir pois o código não está cadastrado.</h3></p>");
}
else
{
boolean res = curStmt.execute("DELETE FROM departamento where codigo_departamento = "+coddpto);
curStmt.close();
out.println("<p align='center'><font size='3' face='Verdana'><strong>Cadastro");
out.println("de Departamentos</strong></font></p><hr>");
out.println("<p align='center'><textarea name='S1' rows='6' cols='32'>"+dpto+",");
out.println("a EXCLUSÃO foi efetuada com sucesso.");
out.println("");
out.println("Atenciosamente,");
out.println("");
out.println("Direção de Desenvolvimento.</textarea></p>");
}//else
}
catch(SQLException ex)
{
out.println("<p><h3 align = CENTER>Problemas com o banco de Dados!</h3></p>");
out.println(ex);
}
catch(java.lang.Exception ex)
{
out.println("<p><h3 align = CENTER>Erro de Comunicacao!</h3></p>");
out.println(ex);
}
/*}
else
if (action.equalsIgnoreCase("Relatorio"))
{
//ServletContext context = getServletContext();
byte[] bytes = null;
try {
//JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject(context.getRealPath("/relatorio/Relatorio_Grupo.jasper"));
JasperReport relatorioJasper = (JasperReport) JRLoader.loadObject("C:\Documents and Settings\Celia\Desktop\MONOGRAFIA\ProjetoServletTFG\WebContent\Relatorios\Relatorio_Departamento.jasper");
Map<String, Object> params = new HashMap<String, Object>();
//params.put("DATA", dataServidor);
//params.put("MES_ANO_INI", dataInicial);
//params.put("MES_ANO_FIM", dataFinal);
//params.put("OBSERVACOES", "NÃO CONSTA AS DESPESAS GERADAS COM MATERIAIS DE ORTESE E PROTESE");
//bytes = JasperRunManager.runReportToPdf(relatorioJasper, params, ds);
bytes = JasperRunManager.runReportToPdf(relatorioJasper, params, con.getConnection());
}
catch (JRException e)
{
e.printStackTrace();
}
if (bytes != null && bytes.length > 0)
{
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
//gerou = true;
}
*/
}
}
catch (Exception e)
{
PrintWriter out = response.getWriter();
out.println("<HTML><BODY><h2>");
out.println("ERRO: <BR><span style=\"color: #FF0000\">");
out.println(e.getMessage());
out.println("</span></h2><BODY><HTML>");
e.printStackTrace();
}
finally
{
//PrintWriter out = response.getWriter();
//out.close();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try
{
this.processRequest(request, response);
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try
{
this.processRequest(request, response);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}