Para acceder directamente a la base de datos desde Java™ Platform,
Enterprise Edition (Java EE) Application Client, puede recuperar un objeto
javax.sql.DataSource de una referencia a recursos configurada en el descriptor de
despliegue cliente.
Esta referencia a recursos
se configura como parte del descriptor de despliegue de la aplicación cliente y
proporciona una referencia a un objeto de origen de datos configurado
previamente.
Acerca de esta tarea
Recuerde que el acceso a datos desde un cliente de aplicaciones utiliza
funciones de conexión del controlador de JDBC directamente desde el cliente. No saca partido del soporte
para agrupación adicional disponible durante la ejecución del servidor de aplicaciones. Por este motivo,
se recomienda que la aplicación cliente utilice un enterprise bean que se ejecute en
el servidor para realizar el acceso a los datos.
Este enterprise bean puede aprovechar la reutilización de la conexión
y prestaciones añadidas adicionales del módulo ejecutable del producto.
Procedimiento
- Importe los paquetes de la API JDBC y de denominación adecuados:
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
- Cree el contexto de denominación inicial:
InitialContext ctx = new InitialContext();
- Utilice el objeto InitialContext para consultar objetos de orígenes de datos de
referencias a recursos.
javax.sql.DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myDS");
//donde jdbc/myDS es el nombre de la referencia a recurso
- Obtenga java.sql.Connection del origen de datos.
- Si no se necesitan la contraseña y el ID de usuario para la conexión,
o si desea utilizar el usuario predeterminado y la contraseña predeterminada que se especifican al crear el origen de datos en la
herramienta ACRCT (Application Client Resource Configuration Tool) en un
paso posterior, utilice este enfoque:
java.sql.Connection conn = ds.getConnection();
- Si no es así, deberá realizar la conexión con un ID de usuario y contraseña específicos:
java.sql.Connection conn = ds.getConnection("user", "password");
//donde "user" y "password" son el ID de usuario y la contraseña de la conexión
- Ejecute una consulta de base de datos con las interfaces java.sql.Statement, java.sql.PreparedStatement o java.sql.CallableStatement según corresponda.
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));
}
- Cierre los objetos de base de datos utilizados en el paso anterior, incluidos todos los objetos ResultSet, Statement, PreparedStatement o CallableStatement.
- Cierre la conexión. Idealmente, debe cerrar la conexión en un bloque finally de la sentencia try...catch envuelta en la operación de la base de datos. Esta acción asegura que se cierra la conexión aún en el caso de que se emita una excepción.
conn.close();