Web sites dinâmicos com Ajax + JSP + MySQL
Não é feitiçaria, é Metodologia (essa foi de doer)! Este artigo contém informações de utilização do Ajax aliados ao JSP e MySQL. Devo advertir que não é meu objetivo ensinar JSP ou MySQL e que o principal foco deste artigo é o AJAX (Asynchronous JavaScript And XML) e seus recursos, como o XMLHttpRequest.
Parte 3: Página JSP que irá gravar os parâmetros
Esta página irá gravar em seu banco de dados os parâmetros digitados no formulário.
<% // Importação de Classes Java %>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.text.*" %>
<%@ page import = "java.util.*" %>
<% // Variáveis da conexão com o banco de dados %>
<%
String url1 = "jdbc:mysql://localhost/projeto2";
String usuario = "mysql";
String senha = "mysql";
Connection con = null;
ResultSet sqlretorno1 = null;
Statement sqlconsulta1 = null;
ResultSet sqlretorno2 = null;
Statement sqlconsulta2 = null;
Statement SQLS = null;
// conexão ao banco de dados
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con = DriverManager.getConnection( url1, usuario, senha);
sqlconsulta1 = con.createStatement();
sqlconsulta2 = con.createStatement();
SQLS = con.createStatement();
//Parâmetros recuperados do Ajax
String login = request.getParameter("login");
String senha1 = request.getParameter("senha");
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String telefone = request.getParameter("telefone");
String cidade = request.getParameter("cidade");
%>
<% String consulta_2 = "";
consulta_2 = "insert into geral2 (nome, endereco, telefone, cidade, login, senha) values ('"+nome+"', '"+endereco+"', '"+telefone+"', '"+cidade+"', '"+login+"', '"+senha1+"') ";
sqlconsulta2.executeUpdate(consulta_2);
//Este comando devolverá "Dados inseridos com Sucesso para" o Ajax.
out.println("Dados inseridos com Sucesso!!!");
%>
<% con.close(); %>
<%// Note que, após a inserção, a página não redireciona para nenhuma página.%>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.text.*" %>
<%@ page import = "java.util.*" %>
<% // Variáveis da conexão com o banco de dados %>
<%
String url1 = "jdbc:mysql://localhost/projeto2";
String usuario = "mysql";
String senha = "mysql";
Connection con = null;
ResultSet sqlretorno1 = null;
Statement sqlconsulta1 = null;
ResultSet sqlretorno2 = null;
Statement sqlconsulta2 = null;
Statement SQLS = null;
// conexão ao banco de dados
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con = DriverManager.getConnection( url1, usuario, senha);
sqlconsulta1 = con.createStatement();
sqlconsulta2 = con.createStatement();
SQLS = con.createStatement();
//Parâmetros recuperados do Ajax
String login = request.getParameter("login");
String senha1 = request.getParameter("senha");
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String telefone = request.getParameter("telefone");
String cidade = request.getParameter("cidade");
%>
<% String consulta_2 = "";
consulta_2 = "insert into geral2 (nome, endereco, telefone, cidade, login, senha) values ('"+nome+"', '"+endereco+"', '"+telefone+"', '"+cidade+"', '"+login+"', '"+senha1+"') ";
sqlconsulta2.executeUpdate(consulta_2);
//Este comando devolverá "Dados inseridos com Sucesso para" o Ajax.
out.println("Dados inseridos com Sucesso!!!");
%>
<% con.close(); %>
<%// Note que, após a inserção, a página não redireciona para nenhuma página.%>
E, assim, temos uma simples aplicação Ajax com JSP e MySQL.
É necessário dizer que possuo o Tomcat instalado em meu Red Hat e que, o artigo foi construído tomando os arquivos de instalação do Java, o Tomcat, o MySQL e demais configurações já previamente instalados e configurados.
Valeu galera, até a próxima e viva o Open Source!
Só gostaria que fosse em PHP :P
Pra ajudar um pouco, aqui vai uma possibilidade query pro MySQL para uso com o artigo:
CREATE DATABASE `projeto2` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `projeto2`;
CREATE TABLE `geral2` (
`codigo` int(6) NOT NULL auto_increment,
`nome` varchar(30) collate latin1_general_ci default NULL,
`endereço` varchar(40) collate latin1_general_ci default NULL,
`cidade` varchar(20) collate latin1_general_ci default NULL,
`telefone` varchar(15) collate latin1_general_ci default NULL,
`login` varchar(15) collate latin1_general_ci default NULL,
`senha` varchar(15) collate latin1_general_ci default NULL,
KEY `codigo` (`codigo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Sim, o campo telefone como string foi proposital, já que não teve um tratamento para telefones do tipo (83) 555-4568