개발 가이드

Local Navigation

SQLite 데이터베이스 만들기

DatabaseFactory 클래스의 create 또는 openOrCreate 메소드를 사용하여 SQLite 데이터베이스를 만들 수 있습니다.

기본적으로 데이터베이스 파일은 미디어 카드에 저장됩니다. BlackBerry Smartphone Simulator를 사용하는 경우, 미디어 카드를 시뮬레이션해야 할 수도 있습니다.

데이터베이스를 만든 다음 데이터베이스 파일이 만들어졌는지 확인합니다. 이를 위해 다음 방법 중 하나를 사용할 수 있습니다.

  • 데이터베이스 뷰어에서 데이터베이스를 확인합니다.
  • 파일 시스템에서 데이터베이스 파일을 찾아 크기가 0이 아닌지 확인합니다.
  • DatabaseFactory.exists 메소드를 호출합니다.

다음 샘플 코드는 미디어 카드의 루트에서 SQLite 데이터베이스를 만듭니다.

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) {
        }
     }
}

다음 샘플 코드는 테이블에 데이터베이스를 추가합니다.

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() );
      }
  }
 }

코드 샘플: 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();
        }
    }
}

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.