Para acessar um banco de dados diretamente de um cliente de aplicativo Java™ Platform, Enterprise Edition (Java EE), recupere um objeto javax.sql.DataSource de uma referência de recurso configurada no descritor de implementação do cliente.
Essa referência de recurso é
configurada como parte do descritor de implementação para o aplicativo cliente e
fornece uma referência a um objeto da origem de dados pré-configurado.
Sobre Esta Tarefa
Observe
que o acesso a dados a partir de um cliente aplicativo utiliza a funcionalidade de conexão do
driver JDBC diretamente a partir do lado cliente. Não tira proveito do suporte
adicional a agrupamento disponível no tempo de execução do servidor de aplicativos. Por essa razão, seu aplicativo cliente deve utilizar um enterprise bean
em execução no lado do servidor para executar o acesso a dados. Esse enterprise bean
poderá, então, tirar proveito da reutilização da conexão e da funcionalidade adicionada adicional
fornecida pelo tempo de execução do produto.
Procedimento
- Importe a API apropriada do JDBC e os pacotes de nomenclatura:
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
- Crie o contexto de nomenclatura inicial:
InitialContext ctx = new InitialContext();
- Utilize o objeto InitialContext para consultar um objeto de origem de dados
a partir de uma referência de recurso.
javax.sql.DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myDS");
//em que jdbc/myDS é o nome da referência de recurso
- Obtenha um java.sql.Connection a partir da origem de dados.
- Se nenhum ID de usuário e senha forem requeridos para a conexão ou se você
for utilizar defaultUser e defaultPassword especificados quando
a origem de dados for criada no ACRCT (Application Client Resource Configuration Tool)
em uma etapa futura, utilize esta abordagem:
java.sql.Connection conn = ds.getConnection();
- Caso contrário, você deverá fazer a conexão com um ID de usuário e senha
específicos:
java.sql.Connection conn = ds.getConnection("user", "password");
//em que user e password são o ID do usuário e a senha para a conexão
- Execute uma consulta ao banco de dados utilizando as interfaces java.sql.Statement, java.sql.PreparedStatement ou java.sql.CallableStatement, conforme apropriado.
Statement stmt = conn.createStatement();
String query = "Select FirstNme from " + owner.toUpperCase() + ".Employee where LASTNAME = '" + searchName + "'";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) { firstNameList.addElement(rs.getString(1));
}
- Feche os objetos de bancos de dados utilizados na etapa anterior, incluindo os objetos
ResultSet, Statement, PreparedStatement ou CallableStatement.
- Feche a conexão. O ideal é fechar a conexão
em um bloco finally da instrução try...catch agrupada
em torno da operação do banco de dados. Essa ação
assegura que a conexão será fechada, mesmo no caso de uma exceção.
conn.close();