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是自動創建的表,記錄語言信息。
智能推薦
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數據庫
一·創建SQLite數據庫 在com.bmcq.db包中,再創建一個class,即跟MainActivity.java 是同一目錄下,我自己取名為personSQLiteHelper.java. 代碼如下: 然后我們把它布置到手機中后,會在DDMS中找到person.db, 然后用SQLite Expert Person打開它,就會出現下面的情況 此時數據庫就以創建成功! *二、sq...
猜你喜歡
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_...