• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Android中sqlite數據庫應用

    1、特點

    和其他數據相比是無類型的。可以存放任意類型,但是主鍵除外。如果主鍵為:INTEGER PRIMARY KEY,則只能存儲64位整數。

    1) Create Table可以用下面的語句:

    CREATE TABLE person(personid integer primary key autocrement, name varchar(20))


    后面的varchar(20)建議寫上。


    2) 獲取自增長后的ID值:select last_insert_rowid()


    案例:

    1、創建數據庫

    SQLiteOpenHelper .getReadableDatabase() 或 getWritableDatabase()

    自動創建數據庫。


    package com.tong.service;
    
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    
    
    public class DBOpen extends SQLiteOpenHelper {
    
    
    	public DBOpen(Context context) {
    		//數據庫名tong.db 使用系統默認的游標工廠  數據庫文件的版本號
    		super(context, "tong.db", null, 1);
    	}
    
    
    	@Override
    	public void onCreate(SQLiteDatabase db) { //數據第一次 被創建時調用的
    		//生成數據庫表
    		//SQLiteDatabase 封裝了對數據的所有操作
    		db.execSQL("CREATE TABLE person(personid integer primary key autoincrement, name varchar(20))");
    	}
    	
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //版本號發生變化時調用
    		//執行更新操作
    		//添加一個字段
    		db.execSQL("ALTER TABLE person ADD phone VARCHAR(12) NULL");
    		
    	}
    
    
    }





    寫一個測試類,創建數據庫。

    package com.tong.test;
    
    import com.tong.service.DBOpen;
    
    import android.test.AndroidTestCase;
    
    public class DBOpenTest extends AndroidTestCase {
    	
    	public void testCreateDB() throws Exception{
    		DBOpen dbopen = new DBOpen(getContext());
    		// 自動創建數據庫
    		dbopen.getReadableDatabase();
    	}
    }
    


    別忘了配置文件,加入單元測試:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.dbapp"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />


    <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
    android:name="com.tong.dbapp.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />


    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <uses-library android:name="android.test.runner"/>

    </application>
    <instrumentation android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.example.dbapp" android:label="Test Tong App">
    </instrumentation>

    </manifest>

    運行測試用例,數據庫已經創建好!




    其中的 android_metadata是自動創建的表,記錄語言信息。




    版權聲明:本文為iteye_19603原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/iteye_19603/article/details/82521154

    智能推薦

    Android——SQLite數據庫(簡單操作)

    本篇文章源碼:https://github.com/1079374315/HibernateDome 超級簡單的SQLite使用如:(不需要寫任何SQL語句完成以下操作) 1.創建數據庫  1 行代碼 2.添加數據 1 行代碼 3.刪除數據 1 行代碼 4.修改數據 1 行代碼 5.查詢數據 1 行代碼 從創建數據庫到數據庫的增刪查改總共 5 行代碼。 先看效果圖: 如果有興趣咋們跟著小...

    Android SQLite數據庫使用

    SQLite是一種輕量級的數據庫,存取數據非常快,非常適合移動設備的本地化存取數據。(Android系統中已經內置了SQLite數據庫) 數據庫的創建: SQLiteOpenHelper,該類是Android提供給我們的便于管理數據庫的一個抽象類,里面有兩個主要的抽象方法需要我們在繼承時進行重寫。分別是onCreate():數據庫創建時會調用;onUpgrade():數據庫升級時調用。另外還提供數...

    Android存儲之SQLite數據庫

    Android存儲之SQLite數據庫數據庫 創建數據庫 操作數據庫 查看數據庫...

    android下的SQLite數據庫

    一·創建SQLite數據庫 在com.bmcq.db包中,再創建一個class,即跟MainActivity.java 是同一目錄下,我自己取名為personSQLiteHelper.java. 代碼如下: 然后我們把它布置到手機中后,會在DDMS中找到person.db, 然后用SQLite Expert Person打開它,就會出現下面的情況 此時數據庫就以創建成功! *二、sq...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    猜你喜歡

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    精品国产乱码久久久久久蜜桃不卡