Guía de desarrollo

Local Navigation

Creación de una base de datos de SQLite

Puede crear una base de datos de SQLite mediante los métodos create o openOrCreate de la clase DatabaseFactory.

De forma predeterminada, los archivos de base de datos se almacenan en una tarjeta de memoria. Si usa un BlackBerry Smartphone Simulator, quizás necesite simular una tarjeta de memoria.

Una vez que se haya creado la base de datos, compruebe que se ha creado el archivo de la base de datos. Puede hacer esto de cualquiera de las siguientes maneras:

  • Visualice la base de datos en un visor de bases de datos.
  • Busque en el sistema de archivos el archivo de la base de datos y compruebe que no tiene un tamaño de cero.
  • Invoque el método DatabaseFactory.exists.

El siguiente código de ejemplo crea una base de datos de SQLite en la raíz de una tarjeta de memoria.

import net.rim.device.api.system.Application;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class CreateDatabase extends Application
{
    public static void main(String[] args)
    {
        CreateDatabase app = new CreateDatabase();
        Database db = null;
        try
        {
           URI strURI = URI.create("file:///SDCard/test.db");        
           db = DatabaseFactory.create(strURI);
        }
        catch (Exception e)
        {
           System.out.println( e.getMessage() );
        }  finally {
        try {
           db.close();
        }
        catch (DatabaseException e) {
        }
     }
}

El siguiente código de ejemplo agrega una tabla a una base de datos.

import net.rim.device.api.database.Database;
 import net.rim.device.api.database.DatabaseFactory;
 import net.rim.device.api.database.Statement;
 import net.rim.device.api.io.URI;
 import net.rim.device.api.system.Application;
 public class AddDatabaseTable extends Application
 {
   public static void main(String[] args)
   {
       AddDatabaseTable app = new AddDatabaseTable();
       try {
          Database d = null;
          Statement st = null;
          try {
              URI myURI = URI.create("file:///SDCard/test.db");
              d = DatabaseFactory.open(myURI);
              st = d.createStatement( "CREATE TABLE People ( " +
                                              "Name TEXT, " +
                                              "Age INTEGER )" );          
              st.prepare();
              st.execute();
          }
          catch ( Exception e )
          {
              System.out.println( e.getMessage() );
          }
          finally
          {
              st.close();
              d.close();
          }
      } catch (Exception e) {
          System.out.println( e.getMessage() );
      }
  }
 }

Ejemplo de código: adición de un esquema a una base de datos SQLite

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class CreateDatabaseSchema extends UiApplication
{
    public static void main(String[] args)
    {
        CreateDatabaseSchema theApp = new CreateDatabaseSchema();
        theApp.enterEventDispatcher();
    }
    public CreateDatabaseSchema()
    {
        pushScreen(new CreateDatabaseSchemaScreen());
    }   
}
class CreateDatabaseSchemaScreen extends MainScreen
{
    Database d;
    public CreateDatabaseSchemaScreen()
    {
        LabelField title = new LabelField("SQLite Create " + 
                                          "Database Schema Sample",
                                           LabelField.ELLIPSIS | 
                                           LabelField.USE_ALL_WIDTH);
        setTitle(title);
        add(new RichTextField("Adding a table to a database called " +
                              "MyTestDatabase.db on the SDCard."));
        try
        {
            URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
                                   "MyTestDatabase.db"); 
            d = DatabaseFactory.openOrCreate(myURI);
            Statement st = d.createStatement( "CREATE TABLE People ( " +
                                              "Name TEXT, " +
                                              "Age INTEGER )" );
            st.prepare();
            st.execute();
            st.close();
            d.close();
        }
        catch ( Exception e ) 
        {         
            System.out.println( e.getMessage() );
            e.printStackTrace();
        }
    }
}

¿Le ha resultado útil esta información? Envíenos sus comentarios.