資料庫有關操作
安卓手機端資料庫大部分用SQLite,SQLite是一個輕量資料庫,符合手機的效能,否則佔用記憶體太大,資源佔用過多。
這裡利用單元測試進行操作。新建一個包,引用相關測試需要的類庫
package com.example.sql_lite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
//資料庫方法獲取
public class MySqlHelper extends SQLiteOpenHelper {
//遊標工廠:
public MySqlHelper(Context context
) {
//資料庫名是可以寫死的,這裡直接寫死了,保持程式碼簡潔性
super(context, "people.db", null, 1);
// TODO 自動生成的建構函式存根
}
@Override
//建立資料庫呼叫
public void onCreate(SQLiteDatabase db) {
// TODO 自動生成的方法存根
//建立表
db.execSQL("create table person(_id primary key autoincrement,name char(20),phone char(20),salary integer(10))");
}
@Override
//升級資料庫呼叫
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO 自動生成的方法存根
}
}
新建一個包,建立測試類
package com.example.sql_lite.test;
import java.sql.SQLData;
import com.example.sql_lite.MySqlHelper;
import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase;
public class Test extends AndroidTestCase{
private MySqlHelper oh;
private SQLiteDatabase db;
public void test() {
}
@Override
protected void setUp() throws Exception {
// TODO 自動生成的方法存根
//會在測試之前就先呼叫,避免程式碼複用,但是不能生命在前面,因為那時還沒初始化完全,getContext()獲取上下文出錯
super.setUp();
oh = new MySqlHelper(getContext());
db = oh.getWritableDatabase();
}
//落淚方法,即摧毀方法,會在測試完成後呼叫
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>protected void tearDown() throws Exception {
<span style="white-space:pre"> </span>// TODO 自動生成的方法存根
<span style="white-space:pre"> </span>super.tearDown();
<span style="white-space:pre"> </span>db.close();
<span style="white-space:pre"> </span>}
//插入資料
public void insert() {
db.execSQL("insert into person(name,phone,salary) values(?,?,?)",new Object[]{"cui","22",20000});
db.execSQL("insert into person(name,phone,salary) values(?,?,?)",new Object[]{"cui2","22",20000});
}
//刪除資料
public void delete() {
db.execSQL("delete from person where name = ?",new Object[]{"cui"});
}
}
//更新資料
public void updata() {
db.execSQL("updata person set salary = ? where name = ?", new Object[]{15000,"cui"});
}
//查詢語句,exeSQL是SQL執行語句,注意他是沒有返回值的,所以查詢不用exeSQL
public void select() {
Cursor cur = db.rawQuery("select * from person", null);
//把指標移動至下一行,movethnext方法返回值是boolean
while (cur.moveToNext()) {
//先通過列名,獲取列索引,再通過索引獲取其內容
String name = cur.getString(cur.getColumnIndex("name"));
String phone = cur.getString(cur.getColumnIndex("phone"));
int salary = cur.getInt(cur.getColumnIndex("salary"));
}
}
相關文章
- SQLALchemy操作MySQL關係型資料庫MySql資料庫
- mysqlclient操作MySQL關係型資料庫MySqlclient資料庫
- FastAPI(44)- 操作關係型資料庫ASTAPI資料庫
- 記錄一些有關資料庫操作的擴充套件包資料庫套件
- 鍵值資料庫與關聯式資料庫有沒有融合的可能?資料庫
- 2.3.1 有關使用DBCA建立資料庫資料庫
- 資料庫的一些有關資料庫
- MSSQL系列 (一):資料庫的相關操作SQL資料庫
- Mysql運維-資料庫及表相關操作MySql運維資料庫
- Oracle 11g資料庫相關操作Oracle資料庫
- .NET關於資料庫操作的類-囊括所有的操作資料庫
- 常用操作 / 資料庫操作資料庫
- 資料庫操作資料庫
- 資料庫操作·資料庫
- 關於資料庫操作多個操作組合的處理資料庫
- 關於資料庫操作的封裝程式碼資料庫封裝
- 2.10.1.1 有關使用CloneDB克隆資料庫資料庫
- 請教有關Struts的資料庫配置資料庫
- 資料表相關操作
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- 設計HBase資料庫資料表有關的建議資料庫
- 資料庫有哪些特性?本地想接入雲資料要怎麼操作?資料庫
- MongoDB 資料庫操作MongoDB資料庫
- mongodb資料庫操作MongoDB資料庫
- MySQL 資料庫操作MySql資料庫
- laravel 資料庫操作Laravel資料庫
- django資料庫操作Django資料庫
- Ecos 資料庫操作資料庫
- 資料庫基本操作資料庫
- mysql有哪些資料操作MySql
- Oracle 資料庫常見檔案及相關操作Oracle資料庫
- 值得白嫖的資料庫常用操作語句彙總(資料庫、資料表、資料操作)資料庫
- 資料庫——基礎(資料庫操作,表格操作)——增加高階查詢資料庫
- Mysql資料庫操作命令MySql資料庫
- Laravel 資料庫基本操作Laravel資料庫
- django操作多資料庫Django資料庫
- Go之資料庫操作Go資料庫
- PHP操作MySQL資料庫PHPMySql資料庫