Mostrando las entradas con la etiqueta Sybase. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Sybase. Mostrar todas las entradas

11 de marzo de 2011

20 de febrero de 2011

Tutorial: Cómo acceder Sybase desde PHP en Java EE, usando GlassFish y Quercus

Image of Duke and PHP togetherEn mi tutorial anterior, ejecuté PHP en Java EE usando GlassFish y Quercus. Hoy, accedí una base de datos Sybase ASE desde PHP en un servidor Java EE.
  1. Instalé Sybase.
    1. Descargué e instalé la versión de desarrollo de Sybase Adaptive Server Enterprise 15.5 (enlace directo). La instalación me tomó bastante tiempo.
    2. Inicié la base de datos: inicié el servicio de Windows llamado Sybase SQLServer.
    3. Verifiqué la conexión a Sybase. En la línea de comandos de Windows, ejecuté:
      %SYBASE%\%SYBASE_OCS%\bin\isql -Usa -P
      Estando en el prompt de isql, ejecuté:
      select @@version
      go

      (A propósito, el usuario administrador es sa e inicialmente no tiene contraseña).
  2. Creé una base de prueba.
    1. En el prompt de isql, ejecuté:
      create database base_prueba
      go

    2. Creé su database owner:
      sp_addlogin dbo_base_prueba, password
      use base_prueba
      sp_changedbowner dbo_base_prueba
      sp_modifylogin dbo_base_prueba, defdb, base_prueba
      go
      exit
  3. Creé una tabla de prueba.
    1. Me conecté como dbo:
      %SYBASE%\%SYBASE_OCS%\bin\isql -Udbo_base_prueba -Ppassword
    2. Creé la tabla:
      create table Tabla1 (valor int)
      insert into Tabla1 values (12345)
      go
  4. Creé el DataSource en GlassFish.
    • Copié el driver JDBC de Sybase: copié el archivo Sybase\jConnect-6_0\classes\jconn3.jar al directorio glassfish\domains\domain1\lib\ext, y reinicié GlassFish.
    • Creé el connection pool, especificando la clase del driver como com.sybase.jdbc3.jdbc.SybDataSource.
    • Creé el DataSource y como nombre JNDI escribí jdbc/base.
  5. Creé una aplicación para ejecutar PHP en Java EE.
    • Usando mi tutorial anterior, creé una aplicación llamada HolaSybasePHP:
      • HolaSybasePHP.war
        • hola.php
        • WEB-INF
          • web.xml
          • lib
            • resin.jar
  6. Especifiqué el DataSource en la aplicación.
    • Agregué las siguientes líneas antes del tag final del archivo web.xml de mi aplicación:
      <resource-ref>
        <res-ref-name>jdbc/base</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>
  7. Modifiqué la página PHP.
    • Usé PDO (portable database object) de PHP 5:
      <p>Hola Sybase desde PHP.</p>
      <?php
      $pdo = new PDO("java:comp/env/jdbc/base");
      echo "<table border=1>"
      $sql = "SELECT valor FROM Tabla1";
      foreach ($pdo->query($sql) as $renglon) {
         echo "<tr><td>$renglon[valor]</td></tr>";
      }
      echo "</table>"
      ?>
  8. Finalmente, accedí http://localhost:8080/HolaSybasePHP/hola.php:
Una imagen del navegador de Internet mostrando en su interior Hola Sybase desde PHP 12345

Libros que espero te sean útiles (lista automática):