Exemplo DataSource JBoss
Autor: Jabes Felipe | Publicado: 2010-09-06T14:33:00-07:00

Olá Pessoal,Afinal, o que é um DataSource?DataSource é uma forma de guardar as configurações de conexão com o banco de dados, como por exemplo, deixá-las em um arquivo xml, evitando assim, que as mesmas não ficam fixas no seu código Java.Neste exemplo, será criado um DataSource que será usado no servidor JBoss 4, a vantagem de usar o JBoss, é que o DS pode ser criado diretamente na pasta de deploy, proporcionando mais liberdade para o desenvolvedor.A estrutura do arquivo xml do DS, é definida logo abaixo:&lt;datasources&gt; &lt;local-tx-datasource&gt;  &lt;jndi-name&gt;jdbc/CLIENTEDS&lt;/jndi-name&gt;  &lt;connection-url&gt;URL&lt;/connection-url&gt;  &lt;driver-class&gt;DRIVER_CLASSE&lt;/driver-class&gt;  &lt;user-name&gt;USUARIO&lt;/user-name&gt;  &lt;password&gt;SENHA&lt;/password&gt; &lt;/local-tx-datasource&gt;&lt;/datasources&gt;Legenda:CLIENTEDS = Nome da datasource que será configurada em sua aplicaçãoURL = Endereço de sua baseDRIVER_CLASSE = Driver de acesso ao banco de dadosUSUARIO = Usuário de acesso base de dadosSENHA = Senha de acesso a base de dadosPor exemplo, vamos configurar, para acessar o banco de dados MySQL:Crie um arquivo xml, com o nome de database-ds.xml, salve este arquivo no seguinte diretório:            DIRETORIO_DO_SEU_JBOSS/server/default/deployNo conteúdo do arquivo, deixei configurado assim:&lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;datasources&gt; &lt;local-tx-datasource&gt;    &lt;jndi-name&gt;jdbc/databaseDS&lt;/jndi-name&gt;    &lt;connection-url&gt;jdbc:mysql://localhost:3306/java&lt;/connection-url&gt;    &lt;driver-class&gt;com.mysql.jdbc.Driver&lt;/driver-class&gt;    &lt;user-name&gt;root&lt;/user-name&gt;    &lt;password&gt;root&lt;/password&gt;    &lt;min-pool-size&gt;5&lt;/min-pool-size&gt;    &lt;max-pool-size&gt;30&lt;/max-pool-size&gt;    &lt;idle-timeout-minutes&gt;1&lt;/idle-timeout-minutes&gt;    &lt;prepared-statement-cache-size&gt;32&lt;/prepared-statement-cache-size&gt;  &lt;/local-tx-datasource&gt;&lt;/datasources&gt;database-ds.xmlObs.: Não esqueça de colocar o jar do driver do MySQL, no seguinte diretório:             DIRETORIO_DO_SEU_JBOSS/server/default/libBom, para testar o DataSource, vamos criar um novo projeto web no Eclipse, chamado ExemploDataSource.Crie um novo file, chamado persistence.xml, dentro da pasta WebContent/META-INF.&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt; &lt;persistence-unit name="PessoaJPAData" transaction-type="JTA"&gt;  &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;  &lt;jta-data-source&gt;java:/jdbc/databaseDS&lt;/jta-data-source&gt;  &lt;properties&gt;   &lt;property name="hibernate.hbm2ddl.auto" value="update" /&gt;  &lt;/properties&gt; &lt;/persistence-unit&gt;&lt;/persistence&gt;persistence.xmlDefinimos o nome do persistence-unit;Usamos o Hibernate como provedor JPA;Colocamos o nome do DS no jta-data-source;E, por fim, defiminos, que o Hibernate crie automaticamente nossas tabelas do BD.Agora, vamos criar um Servlet, chamado ServletDS.package com.blogspot.jabesfelipe.servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import javax.naming.Context;import javax.naming.InitialContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.sql.DataSource;public class ServletDS extends HttpServlet {   private static final long serialVersionUID = 1L; private void processarRequisicao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  PrintWriter out = response.getWriter();  try {   Context context = new InitialContext();     DataSource dataSource = (DataSource) context.lookup("java:jdbc/databaseDS");    Connection connection = dataSource.getConnection();                             out.println("Conectado, através da JNDI!");   connection.close();  } catch(Exception e) {   e.printStackTrace();  } }  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  processarRequisicao(request, response); }  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  processarRequisicao(request, response); }  }ServletDS.javaAtravés da JNDI, acessamos nosso DataSource, para testar, inicialize seu JBoss, e digite o endereço: http://localhost:8080/ExemploDataSource/ServletDSBom galera, este foi um exemplo de como criar um DataSource no JBoss, e usá-lo em uma aplicação.Para quem quiser baixar o exemplo, clique aqui.Qualquer dúvida, crítica ou sugestão, fico à disposição.