JSP acessando MySQL usando JSTL e TL. Calma, não se assuste, a única coisa complicada nisso é o nome. Esse artigo mostra como é fácil manipular informações em um banco de dados usando páginas JSP.
Para criar a tabela que usaremos para fazer os testes.
Agora vamos criar os dois arquivos que serão responsáveis por inserir informações na tabela Teste. Segue abaixo o código do arquivo que irá receber as informações do usuário para posteriormente enviar esse conteúdo à página JSP que se encarregará de salvar as informações na tabela. Salve este arquivo em CATALINA_HOME/webapps/fba/inserir.htm com o seguinte conteúdo:
<html>
<head>
<title>Inserir informações na tabela</title>
</head>
<body>
<!--
Abaixo a definição de qual arquivo receberá o conteúdo dos campos quando a pagina for submetida
-->
<form action="inserir.jsp" method="POST">
<!--
Abaixo a definição do componente da pagina que irá receber as informações
do campo 'Campo1' para ser salva posteriormente na tabela
-->
<!--
E abaixo o outro componente da pagina que irá receber as informações do campo 'Campo2' para ser salva na tabela quando for clicado em 'submit'
-->
<!--
Botão 'submit' responsável por enviar as informações digitadas nos dois componentes descritos acima
-->
<INPUT type="submit">
</form>
</body>
</html>
E abaixo o código do arquivo que irá receber as informações da página anterior e irá salvar na tabela. Salve este arquivo em CATALINA_HOME/webapps/fba/inserir.jsp com o seguinte conteúdo:
<!--
a tag abaixo define que a pagina deve usar a jstl 'sql' que é responsável pela interação com o banco de dados
-->
<!--
A tag abaixo define um 'data source' que é um componente que armazena informações da conexão com o banco como nome do banco, nome do usuário, senha e qual jdbc deve ser usado.
O atributo 'var' é usado para atribuir um nome ao objeto, que poderá ser acessado posteriormente usando a EL ${Conexao}.
O atributo 'dataSource' define os parâmetros usados para realizar a conexão com o banco.
Substitua os valores Usuario pelo nome do usuário criado na hora da instalação do mysql e senha pela sua respectiva senha
-->
<%--
A tag abaixo define um 'sql update' que é responsável por executar 'modificações' no banco.
No atributo 'dataSource' define que objeto 'data source' deve ser usados.
No atributo 'var' define o nome do objeto 'sql update'
No corpo da tag (entre a tag <sql:update> e
As tags 'sql param' são responsáveis por substituir o '?' definido na cláusula sql do 'sql update' pelo valor recebido no atributo 'value'
Perceba que no atributo 'value' da tag sql:param existe uma EL, ela acessa o objeto param(objeto este que contém as informações enviadas através do submit da pagina inserir.htm) e o sub-objeto Campo1 que possui o conteúdo do primeiro componente definido no arquivo inserir.htm e o mesmo acontece no segundo 'sql param' perceba também que existem duas formas de acessar os sub-objetos de um objeto pai, usando a sintaxe objeto.sub-objeto ou objeto['sub-objeto'] ambas tem o mesmo efeito
--%>
<sql:update dataSource="${Conexao}" var="Alteracao">
INSERT INTO Teste (Campo1,Campo2)
VALUES(?,?);
<sql:param value="${param.Campo1}"/>
<sql:param value="${param['Campo2']}"/>
</sql:update>
<html>
<head>
<title>
INSERINDO INFORMAÇÕES NA TABELA
</title>
</head>
<body>
<%--
o valor contido na variável 'Alteração' é o numero de registros afetados na operação retornado pelo bando de dados
--%>
Total de registros inseridos: ${Alteracao}<br>
</body>
</html>
Depois basta abrir o navegador e testar acessando "http://localhost:8080/fba/inserir.htm", entrando com alguma informação nos campos e clicando em 'submit'.
[2] Comentário enviado por removido em 20/02/2006 - 17:40h
Olá não é uma boa usar taglib para esse fim... principalmente porque vc ta misturando regras de seu negócio com a visualização em si... somente ai... ja fere todo o padrão de MVC. Do qual ajuda bastante em separação do código(Scriptlets) das htmls(Views). Pense nissso ;)
[3] Comentário enviado por fba em 20/02/2006 - 18:00h
Guinet, realmente em se tratando de MVC(Model View Controller certo?) o correto é separar visualização das regras de negocio porém em se tratando de aplicações que não seguem a MVC é muito funcional e útil, alem de que nada impede de separar as regras de negocio e vizualização usando as tags vai do gosto de cada um :D existem mil maneiras de fazer algo e obrigado pelo comentario ;)
[4] Comentário enviado por removido em 21/02/2006 - 10:15h
Exato... vai de vc escolher a melhor forma de se desenvolver um projeto... prefira sempre MVC e frameworks que lhe auxiliam no desenvolvimento de um software mais robusto.
[6] Comentário enviado por johnny_begood em 19/08/2010 - 16:23h
muito bom seu post...
mas eu particularmente não uso mais jsp para conectar em bd..
prefiro usar framework, em jsf consigo fazer a mesma aplicação usando php para
conectar ao banco de dados, somente configuro o xml, e tudo fica mais facil