歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

使用SQLiteOpenHelper類對數據庫簡單操作

一.當操作SQLite數據庫時需要,需要得到一個SQLiteOpenHelper對象。但由於SQLiteOpenHelper是一個抽象類,需要自定義一個類來繼承它。這樣自定義類就實現了SQLiteOpenHelper中的所有方法。

二.創建一個類並繼承SQLiteOpenHelper,實現其中的方法。並在構造函數中調用基類的構造函數。

[java]
  1. public class SqlLiteHelper extends SQLiteOpenHelper {  
  2.        private static final int VERSION =1;  
  3.        //TODO 實現基類的構造函數,四個參數的   
  4.        public SqlLiteHelper(Contextcontext , String DBname ,CursorFactory factory , int version)  
  5.        {  
  6.               super(context, DBname,factory, version);  
  7.        }  
  8.        //TODO 實現基類的構造函數,三個參數的   
  9.        public SqlLiteHelper(Context context, String DBname ,int version ) {  
  10.               this(context, DBname, null,version);  
  11.                 
  12.        }  
  13.        //TODO 實現基類的構造函數,兩個參數的   
  14.        public SqlLiteHelper(Contextcontext,String DBname) {  
  15.               this(context, DBname, null,VERSION);  
  16.                 
  17.        }  
  18.          
  19.        //當創建數據庫時執行   
  20.        @Override  
  21.        public void onCreate(SQLiteDatabasedb) {  
  22.               // TODO Auto-generatedmethod stub   
  23.               System.out.println("創建數據庫");  
  24.               db.execSQL("Createtable user(id int , name varchar(20))");  
  25.        }  
  26.   
  27.        //當更新數據庫版本時執行   
  28.        @Override  
  29.        public voidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  30.               //TODO Auto-generated method stub   
  31.               System.out.println("修改數據庫版本號");  
  32.        }  
  33. }  

三.創建數據庫

[java]
  1. //創建自定義SqlLiteHelper類的實例,調用兩個參數的構造函數   
  2. SqlLiteHelper mySqlLiteHelper = new SqlLiteHelper(SqlLiteTestActivity.this,"paj_db_test");  
  3. //只有調用了getWritableDatabase()方法才會執行SqlLiteHelper類中的OnCreate中的代碼   
  4. mySqlLiteHelper.getWritableDatabase();  

四.更新數據庫版本

[java]
  1. //調用三個參數的構造函數更新數據庫的版本,數據庫版本只能遞增。   
  2. SqlLiteHelper myhelper = new SqlLiteHelper(getApplicationContext(),"paj_db_test"2);  
  3. myhelper.getReadableDatabase();  

五.向數據庫中插入信息

[java]
  1. //創建SqlLiteHelper自定義類對象,並調用兩個參數的構造函數   
  2. SqlLiteHelper  myhelper = newSqlLiteHelper(getApplicationContext(), "paj_db_test");         
  3. //創建一個ContenValues對象,存儲數據   
  4. ContentValues contentValues = new ContentValues();  
  5. //把數據填充到ContentValues對象中,ContentValues對象中的鍵和值對應數據庫中的列和值。值必須與數據列的類型相同。   
  6. contentValues.put("id"2);  
  7. contentValues.put("name""zhangsan");  
  8. //創建可寫的SQLiteDatabase對象   
  9. SQLiteDatabase db = myhelper.getWritableDatabase();  
  10. //調用insert方法寫入數據庫.第一個參數為表名,第二個為null,第三個參數為CntentValues對象。   
  11. db.insert("user"null, contentValues);  

六.更新數據庫信息

[java]
  1. //創建一個ContentValue對象存放要更新的信息   
  2. ContentValues contentValues = new ContentValues();  
  3. //把要更新的信息存放到ContentValues對象中。   
  4. //第一個參數對應數據庫中的列,第二個參數對應列的值。   
  5. contentValues.put("name""zhangsanfeng");  
  6. //創建SqlLiteHelper對象   
  7. SqlLiteHelper myhelper = new SqlLiteHelper(getApplicationContext(),"paj_db_test");  
  8. //創建一個可寫的SQLiteDatabase對象   
  9. SQLiteDatabase db = myhelper.getWritableDatabase();  
  10. //使用update更新數據庫   
  11. //第一個參數是數據庫表名   
  12. //第二個參數是ContentValues對象   
  13. //第三個參數是SQL語句中的Where條件子語句,其中的?對應第四個參數中String數組。數組中有幾個字符就有幾個問號。   
  14. //第四個參數是Where的條件。使用String數組存放Where條件   
  15. db.update("user", contentValues, "id=?", newString[]{"1"});  

七.查詢數據庫

[java]
  1. //調用兩個參數的構造函數實例化SqlLiteHelper自定義類   
  2. SqlLiteHelper myhelper = new SqlLiteHelper(SqlLiteTestActivity.this,"paj_db_test");  
  3. //創建只讀的SQLiteDatabase對象   
  4. SQLiteDatabase db = myhelper.getReadableDatabase();  
  5. //調用SQLitedatabase的query方法獲取檢索結果並放入Cursor對象中。   
  6. //query方法的第一個參數是表名   
  7. //第二個參數是使用String數組存放列名,一個列明占用一個元素   
  8. //第三個參數是SQL語句中的Where條件子語句,其中的?對應第四個參數中String數組。數組中有幾個字符就有幾個問號。   
  9. //第三個參數是Where的條件   
  10. //第四個參數分組   
  11. //第五個參數是SQL中的having   
  12. //第六個參數是排序   
  13. Cursor cursor = db.query("user"null,nullnullnullnullnull);  
  14. //使用cursor.moveToNext()把游標下移一行。游標默認在第一行的上一行。   
  15. while (cursor.moveToNext()) {  
  16.     //使用GetString獲取列中的值。參數為使用cursor.getColumnIndex("name")獲取的序號。   
  17.        String nameString =cursor.getString(cursor.getColumnIndex("name"));  
  18.        String idsString = cursor.getString(cursor.getColumnIndex("id"));  
  19.        System.out.println("ID--->"+idsString);  
  20.        System.out.println("NAME--->"+nameString);  
  21.        }  
Copyright © Linux教程網 All Rights Reserved