Fala ae cara. Boa noticia. rs
Consegui aqui. Apanhei um pouco, mas funcionou…
Vamos lá…
Vamos desde o inicio pra nao nos perdermos…
Primeiro, baixe o ultimo jdbc do mysql.
Eu utilizei esse: mysql-connector-java-3.0.17-ga-bin.jar
Coloque-o na pasta:
C:\glassfish3\glassfish\domains\domain1\lib\ext
Feito isso, acesse o console admin.
Depois, Resources -> JDBC Connection Pools -> new.
Preencha:
Pool Name:
Resource type: javax.sql.ConnectionPoolDataSource
DataBaseDriveVendor: Mysql.
Clique em Next.
Vá até o final da pagina e preencha os campos:
User:
DataBaseName:
Port:
Password:
ServerName.
Clique em finish.
Volte no que vc acabou de criar vá em additional Properties.
Tem que estar aparecendo:
User:
DatabaseName:
Port:
ServerName:
Password:
Por exemplo, no meu caso, ficou:
User: root
DatabaseName: test
Port: 3306
ServerName:localhost
Password:teste
Feito isso, basta criar o resource que será usado no Java.
Resources -> JDBC -> JDBC Resource -> new.
JNDI Name: jdbc/teste (o que eu coloquei, o mesmo que será usado no lookup)
PoolName:: O nome que foi utilizado na criação do pool.
Agora, é só utilizar no java.
No meu, ficou assim:
(Código apenas para testar, entao, ignore o jeito q foi feito…)
ManagedBean
import java.sql.SQLException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.naming.NamingException;
@ManagedBean
@SessionScoped
public class UseClass {
public String actTeste() throws SQLException, NamingException {
System.out.println("chamouuuuuuuuuuuuuuuuuuu");
new UsaConexao().UsarConexao();
return null;
}
}
Conexao. (No caso, utilizei apenas para teste, entao nao fechei conexao, nem fiz nada demais, mas nao se esqueça de fechar a conexao. con.close();
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.NamingException;
public class UsaConexao {
Pool pool;
public UsaConexao() throws NamingException {
pool = new Pool();
}
public void UsarConexao() throws SQLException, NamingException {
Connection con = pool.getConnection();
PreparedStatement stmt = con.prepareStatement("select * from usuario");
ResultSet executeQuery = stmt.executeQuery();
while (executeQuery.next()) {
System.out.println(executeQuery.getString("nome"));
}
System.out.println(con);
}
}
Criacao da conexao
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class Pool {
private DataSource dataSource;
public Pool() throws NamingException {
InitialContext initialContext = new InitialContext();
dataSource = (DataSource) initialContext.lookup("jdbc/teste");
}
public Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
Bom, é isso. Aqui funcionou.
Verifique se os imports estao certos, e, qdo eu tava configurando pra mim, eu tive varios erros no começo, mas nenhum foi igual ao seu. Os erros foram corrigidos configurando corretamente o pool no console do glassfish, ou seja, o resto ja estava tudo certo.
Verifique tbm a versao do seu jar do mysql. Baixe o que eu testei.
Abrcs.