Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 數據存儲——SQLite實例、判斷數據庫中表是否存在

Android 數據存儲——SQLite實例、判斷數據庫中表是否存在

編輯:關於Android編程

本文主要記錄一下Android SQLiteDatabase中如何判斷數據庫中表是否存在,以及測試SQLiteDatabase數據庫的基本操作。有關SQLite的詳細說明,可以查看轉載的Android 數據存儲——SQLite使用詳解

例子

AndroidManifest.xml——沒有做任何修改,創建工程默認

 



MainActivity.java

 

 

package com.example.sqlite;

import android.os.Bundle;
import android.util.Log;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class MainActivity extends Activity {
	private SQLiteDatabase db1;
//	private SQLiteDatabase db2;
	private MyDatabaseUtil myDatabaseUtil;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //參數二是數據庫文件名
        myDatabaseUtil = new MyDatabaseUtil(this, db1.db, null, 1);
        
        db1 = this.openOrCreateDatabase(db1.db, Context.MODE_PRIVATE, null);
        /*/data/data/com.example.sqlite/databases必須存在,否則創建出錯,最後是databases而不是database,不要忘了加's'*/
//        db2 = SQLiteDatabase.openOrCreateDatabase(/data/data/com.example.sqlite/databases/db2.db3,null);
        
       
        /*創建表,並判斷是否已經存在此表,沒創建,則創建並初始化*/
        if (!myDatabaseUtil.tabIsExist(person)) {
        	db1.execSQL(CREATE TABLE person (_id integer primary key autoincrement, name varchar(20)));
        	ContentValues values =new ContentValues();
            for(int i=0;i<10;i++){
                    values.put(name, name + i);
                   db1.insert(person, _id, values);
            }
        }else {
        	Log.i(+++++++++++, 已經創建了,無需再創建);
        }
 
        /*更新數據庫*/
        ContentValues values =new ContentValues();
        values.put(name, wxl);
        db1.update(person, values, _id=1, null);
        db1.update(person, values, _id=?, new String[]{5});
        
        /*查詢數據*/
        Cursor c = db1.query(person, null, null, null, null, null, null);
        c.moveToFirst();
	    while(!c.isAfterLast()){
	    	int index = c.getColumnIndex(name);
	        Log.d(SQLite, c.getString(index));
	        c.moveToNext();
	    }
	    
	    c = db1.rawQuery(select * from person, null);
	    c.moveToFirst();
	    while(!c.isAfterLast()){
	    	int index = c.getColumnIndex(name);
	        Log.d(SQLite, c.getString(index));
	        c.moveToNext();
	    }
        		 
    }
    
    public class MyDatabaseUtil extends SQLiteOpenHelper{

		public MyDatabaseUtil(Context context, String name,
				CursorFactory factory, int version) {
			super(context, name, factory, version);
			// TODO Auto-generated constructor stub
		}

		@Override
		public void onCreate(SQLiteDatabase arg0) {
			// TODO Auto-generated method stub			
		}

		@Override
		public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
			// TODO Auto-generated method stub			
		}
		
		/**
         * 判斷某張表是否存在
         * @param tabName 表名
         * @return
         */
        public boolean tabIsExist(String tabName){
                boolean result = false;
                if(tabName == null){
                        return false;
                }
                SQLiteDatabase db = null;
                Cursor cursor = null;
                try {
                        db = this.getReadableDatabase();//此this是繼承SQLiteOpenHelper類得到的
                        String sql = select count(*) as c from sqlite_master where type ='table' and name ='+tabName.trim()+' ;
                        cursor = db.rawQuery(sql, null);
                        if(cursor.moveToNext()){
                                int count = cursor.getInt(0);
                                if(count>0){
                                        result = true;
                                }
                        }
                        
                } catch (Exception e) {
                        // TODO: handle exception
                }                
                return result;
        }
    	
    }
    
}
其中getReadableDatabase()方法是SQLiteOpenHelper類中的

 

創建表並初始化得到的表數據如下

\

更新數據得到的表數據

\

查詢數據表的數據顯示結果如下

\

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved