Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android開發入門(十九)數據庫 19.3 預創建數據庫

Android開發入門(十九)數據庫 19.3 預創建數據庫

編輯:Android開發教程

在開發過程中,有時候,預先創建好數據庫比在程序運行時創建數據庫更加地高效。舉個例子,你想編寫 一個程序,這個程序把你去過的地方的坐標都顯示出來。這種情況下,預先創建數據庫是更加容易的,比在 運行時創建數據庫。

這裡,需要使用一些免費的工具。推薦使用SQLite Database Browser,支持多 平台,並且免費。下載地址: http://sourceforge.net/projects/sqlitebrowser/

下面是創建一個 聯系人表的例子。

在設計階段把數據庫建好,下 一步,就是把數據庫和程序捆綁在一起,這樣,在運行時,就能使用數據庫了。

1. 把數據庫放在 assets文件夾下面。

2. 把assets文件夾下面的數 據庫,復制到程序的安裝路徑下。

public class DatabasesActivity extends Activity {  
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
      
        DBAdapter db = new DBAdapter(this);  
              
        try {  
            String destPath = "/data/data/" + getPackageName() +  
                "/databases";  
            File f = new File(destPath);  
            if (!f.exists()) {               
             f.mkdirs();  
                f.createNewFile();  
                   
             //---copy the db from the assets folder into   
             // the databases folder---  
                CopyDB(getBaseContext().getAssets().open("mydb"),  
                    new FileOutputStream(destPath + "/MyDB"));  
            }  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
             
        //---get all contacts---  
        db.open();  
        Cursor c = db.getAllContacts();  
        if (c.moveToFirst())  
        {  
            do {  
                DisplayContact(c);  
            } while (c.moveToNext());  
        }  
        db.close();  
    }  
          
    public void CopyDB(InputStream inputStream,   
    OutputStream outputStream) throws IOException {  
        //---copy 1K bytes at a time---  
        byte[] buffer = new byte[1024];  
        int length;  
        while ((length = inputStream.read(buffer)) > 0) {  
            outputStream.write(buffer, 0, length);  
        }  
        inputStream.close();  
        outputStream.close();  
    }  
      
    public void DisplayContact(Cursor c)  
    {  
        Toast.makeText(this,  
                "id: " + c.getString(0) + "\n" +  
                "Name: " + c.getString(1) + "\n" +  
                "Email:  " + c.getString(2),  
                Toast.LENGTH_LONG).show();  
    }  
}

3. 調試,用DDMS查看,數據庫被復制到了指定的位置。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved