SQLite—Android數據庫


SQLite:輕量級數據庫,SQLiteOpenHelper是一個幫助打開Android數據庫的一個助手類
Oracle、MySql、SQLServer:大型數據庫

大家都知道所謂的數據庫,就是按照數據結構來組織、存儲和管理數據的一個倉庫

SQLite自帶的增刪改查方法
增加方法
public void insert(){
  //存放數據的鍵值對對象
  ContentValues cv=new ContentValues();
  //key表示表中的某一列名稱,value爲這一列上的數據
  cv.put("name", "張三");
  cv.put("phone", "15036198912");
  //獲取數據庫的可寫對象
  SQLiteDatabase db=getWritableDatabase();
  //1.要插入的表  2.當values參數或不包含任何key-values對時該參數有效  3.要插入表的數據
  db.insert("student", null, cv);
 }
刪除方法
public void delete(){
  SQLiteDatabase db=getWritableDatabase();
  //1.表名  2.條件  3.具體的條件
  //多個條件之間用and連接
  String clause="name=? and phone=?";
  String[] args={"張三","15036198912"};
  db.delete("student", clause, args);
 }
更新方法
public void update(){
  SQLiteDatabase db=getWritableDatabase();
  //1.要修改的表  2.要修改的內容  3.查找的條件  4.具體的查找條件
  ContentValues cv=new ContentValues();
  cv.put("name", "李四");
  String clause="name=?";
  String[] args={"張三"};
  db.update("student", cv, clause, args);
 }
查找方法
public Cursor query(){
  SQLiteDatabase db=getReadableDatabase();
  //查找到的信息會被數據庫默認存放在Cursor對象中
  //如果想要使用這些數據,必須對Cursor對象進行解析
  Cursor c=db.query("student", null, null, null, null, null, null);
  return c;
 }
下面是一種簡單的解析方法
Cursor c=db.query();
  if(c.moveToFirst()){
   do{
    //c.getString(要查找的列的下標)--根據某一列這個參數,查找某一列的內容,c.getInt()要查找的某一行
    //c.getColumnIndex(要查找的列的名字)--根據某一列的名字,查找某一列的下標,c.getColumnIndex("id")這個會依次獲得id這一列的行數
    System.out.println(c.getString(c.getColumnIndex("name")));
   }while(c.moveToNext());
  }

//一般情況下數據庫的名字、當前版本都是寫在這個類中的public class MyHelper extends SQLiteOpenHelper
 public static final String DB_NAME="students.db";
 public static final int DB_VERSION=5;
 
 //1.上下文 2.數據庫的名字 3.遊標工廠 4.數據庫的版本 -- 必須是一個正整數
 //創建數據庫的
 public MyHelper(Context context) {
  super(context, DB_NAME, null, DB_VERSION);
  // TODO Auto-generated constructor stub
 }

//什麼時候修改版本號
 //當數據庫或者數據庫中的表的原始內容發生改變時,必須要升級版本
 
 
 //類似於Activity中的onCreate方法,也是第一個運行的方法
 //創建數據庫中的數據表
 //SQLiteDatabase -- 數據庫文件對象
 @Override
 public void onCreate(SQLiteDatabase db) {
  // TODO Auto-generated method stub
  //新建 student
  //表中的數據有一個自增長的主鍵 int id,text name,text phone
  String create_table="create table student("
    +"id integer  primary key autoincrement,"
    +"name text,phone text);";
  //運行數據庫語言
  db.execSQL(create_table);
// String create_table02="";
// db.execSQL(create_table02);
 
 
 }
 //升級數據庫使用
 //1.數據庫對象 2.舊版本號 3.新版本號
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // TODO Auto-generated method stub
  if(oldVersion<newVersion){
   //刪除已經存在的表
   db.execSQL("drop table student ");
   onCreate(db);
  }
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章