Esta documentación está archivada y no tiene mantenimiento.

Cómo: Utilizar JDBC en una aplicación

Visual Studio 2005

Una conexión a bases de datos Java (JDBC) es un controlador de bases de datos que permite la conexión mediante programación a una base de datos. Debe utilizar la conexión como un puente entre la aplicación y la base de datos real.

Visual J# incluye una implementación de JDBC sobre ODBC [puente JDBC-ODBC]. Este puente puede permitir a la aplicación conectarse con cualquier servidor de bases de datos que tenga instalado el controlador ODBC en el equipo cliente con Visual J#.

El primer paso establece un nombre de origen de datos (DSN) para administrar las credenciales de contraseña e identificador de usuario en la base de datos de Access denominada Northwind. El segundo paso utiliza el DSN y JdbcOdbcDriver para conectarse a la base de datos y devolver datos. El código denomina al controlador, Class.forName("com.ms.jdbc.odbc.JdbcOdbcDriver"), y genera una cadena de conexión que denomina al DSN con las credenciales de servidor y de autenticación, del siguiente modo: String url = "jdbc:odbc:vbuetools";

En el último ejemplo se ejecuta la consulta. Si se utiliza la instrucción while (rs.next()), el código recorre los conjuntos de resultados y obtiene los datos. Una vez imprimidos los datos en la consola, la instrucción con.close() cierra el conjunto de registros así como la conexión con la base de datos.

Para establecer un nombre de origen de datos

  1. Haga clic en Inicio, elija Panel de control, seleccione Herramientas administrativas y, a continuación, haga clic en Orígenes de datos (ODBC).

  2. En la pantalla Herramientas administrativas, seleccione Orígenes de datos.

  3. En la página Administrador de orígenes de datos ODBC, haga clic en la ficha DSN de sistema y haga clic en Agregar.

  4. En la página Crear nuevo origen de datos , seleccione Controlador de Microsoft Access (*.mdb) y haga clic en Finalizar.

    Esto indica el tipo de base de datos. En las aplicaciones propias, asegúrese de elegir el controlador que coincida con la base de datos. En el caso de SQL Server, desplácese por la lista y elija el controlador correspondiente a la versión de SQL Server.

  5. En la página Configuración de Microsoft Access ODBC, en el cuadro Nombre de origen de datos, escriba JDBCdsn y haga clic en Seleccionar.

  6. Seleccione Northwind.mdb y haga clic en Aceptar.

  7. En la página Configuración de DSN de Microsoft SQL Server, haga clic en Con autenticación de Windows NT mediante el id. de inicio de sesión en red.

    Esta opción permite el acceso a los datos utilizando el identificador de usuario y la contraseña de NT.

  8. Haga clic en Siguiente.

  9. Compruebe la conexión y haga clic en Aceptar.

    La Herramienta administrativa de ODBC almacena el nombre del servidor y las credenciales en el archivo binario JDBCdsn.dsn. En tiempo de ejecución, el código de J# obtiene acceso a esta información para establecer conexión con la base de datos.

Para obtener acceso a los datos

  1. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.

  2. Haga clic en Aplicación de consola y escriba JDBC2 en el cuadro Nombre.

  3. Reemplace el contenido de Program.jsl por el código siguiente:

    import java.*;
    import java.sql.*;
    import java.util.*;
    import com.ms.jdbc.odbc.JdbcOdbcDriver;
    public class Connect{
    
        private java.sql.Connection  con = null;
        private ResultSet rs;
         
         // Constructor:
         public Connect(){}
    
        private void FindEmployee() throws SQLException, ClassNotFoundException
        {
            try
            {
                Class.forName("com.ms.jdbc.odbc.JdbcOdbcDriver");
                String url = "jdbc:odbc:JDBCdsn";
                con = DriverManager.getConnection(url, "", "");
                Statement stmt = con.createStatement();
                rs = stmt.executeQuery("Select EmployeeID, LastName,  Title from Employees");
                while (rs.next())
                {
                    //Column names: 
                    System.out.println(rs.getInt("EmployeeID") + " " + rs.getString("LastName") + " " + rs.getString("Title"));
                }
                if(con != null)
                    con.close();
                con = null;
            }
            catch (SQLException ex)
            {
                throw ex;
            }
            catch (ClassNotFoundException clex)
            {
                throw clex;
            }
        }
    
         private void closeConnection(){
              try{
                   if(con != null)
                        con.close();
                   con = null;
              }catch(Exception ex){
                   ex.printStackTrace();
              }
         }
        
         public static void main(String[] args) throws Exception
           {
              Connect myDbTest = new Connect();
              try
              {
                  myDbTest.FindEmployee();
              }
              catch (Exception ex)
              {
                ex.printStackTrace();
                System.out.println("Error Trace in getConnection() : " + ex.getMessage());
              
    }      
    }
    }
    
  4. En el código que acaba de agregar, compruebe que el nombre de origen de datos coincide con el que se creó con las Herramientas administrativas. Por ejemplo:

    String url = "jdbc:odbc: JDBCdsn";
    
  5. Presione F5 para compilar y ejecutar el código.

    El programa obtiene el número de serie, el apellido y el título de cada empleado de la tabla Employees de la base de datos Northwind.

Seguridad

Para su comodidad, el nombre de la base de datos se puede almacenar en la configuración de DSN. Se debe tener cuidado para que la aplicación no incluya código ni almacene credenciales en ubicaciones no seguras o de un modo menos seguro. En el caso de aplicaciones Web, asegúrese de codificar, cifrar o calcular el algoritmo hash de los identificadores de usuario, las contraseñas y otra información relevante de la base de datos.

Vea también

Mostrar: