sqlite

  1. sqlite開源免費數據庫,嵌入式數據庫,系統內置,直接可以調用系統提供的API,同時是輕量級的。
  2. 數據庫其實就是特殊的文件
  3. 創建數據庫步驟:
    .創建一個類繼承 pernHelper,同時實現裏面的構造方法和爲實現的方法
    .創建該類的對象,調用getReadableDatabase()來創建數據庫
package com.example.sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public  class MyHelper extends SQLiteOpenHelper {
//參數1上下文 
//參數2數據庫的名稱
//參數3工廠
//參數4版本號
    public MyHelper(Context context, String name, CursorFactory factory,int version) {
        super(context, name, factory, version);

    }
//數據庫第一次創建的時候會調用該方法,通常用來初始化
    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql ="create table student (_id integer primary key,name text,age text )";
        db.execSQL(sql);
    }
//數據庫版本升級的時候會調用該方法,注意數據庫不能降級
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        //修改有個原則 只可以增加
        db.execSQL("alter table student add nick");//alter 修改
    }

}
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MyHelper myhelper = new MyHelper(this,"hema.db",null,1);//準備階段
        myhelper.getReadableDatabase();//創建數據庫,返回一個可讀的數據庫,如果儲空間滿了會返回可讀的,沒滿會返回可寫的數據庫
        myhelper.getWritableDatabase();//創建數據庫,返回一個可寫的數據庫,當存儲空間滿了會報錯
    }  
}
  1. 增刪改查(按照上面的例子)
    String sql=”insert into student values(null,”張三”,18,“三”)”;db.execSQL(sql)//添加
    String sql =“delete from student where _id=2”;db.execSQL(sql)//刪除
    String sql =”update student set nick =‘四’where _id=1;db.execSQL(sql)//改
    //查
    Cursor cursor=db.rawQuery(“select* from student”,null);
    cursor.moveToNext();//移動到下一行
    int name =cursor.getColumnIndex(“name”)//獲取列的索引
    String nameStr=cursor.getString(name);
  2. google api的增刪改查
    //添加
    //參1表格
    //參2 如果插入數據少字段,允許容錯
    //參3map集合
    ContentValues values = new ContentValues(); values .add(“name”,”李四”);
    long id =db.insert(“student”,”“,values );
    if(id!=-1){System.out.println(“添加成功”)}
    //刪除
    //參1 表名
    //參2條件
    //參3字符串數據,替換條件裏的佔位符
    int id =db.delete(“student”,”_id=?”, new String[]{“2”});
    if(id>0){System.out.println(“刪除成功”)};
    //修改
    //參1表名
    //參2ContentValues 用來對應表中的字段和值
    //參3條件
    //參4是字符串數據,替換條件裏的佔位符
    ContentValues values = new ContentValues();values .put(“nick”,”五”);
    int id=db.update(“student”,values,”_id=?”,new String[]{“2”});
    if(id>0){System.out.println(“更新成功”)};
    //查詢
    //參1 表名
    //參2 查詢的列
    //參3查詢的條件
    //參4 字符串數據,替換條件裏的佔位符
    //參5 分組查詢
    //參6having的條件
    //參7 排序
    //參8分頁
    Cursor cursor =db.query(“student”,null,null,null,null,null,null,null);
    while(cursor .moveToNext()){
    int name =cursor.getColumnIndex(“name”)//獲取列的索引
    String nameStr=cursor.getString(name);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章