android sqlite3的使用

在android中使用sqlite3很簡單,就是繼承 SQLiteOpenHelper類,然後重寫onCreate和onUpdate方法。

oncreate是在數據庫首次創建的時候調用,在onupdate是在已有數據庫,但是版本不同的時候調用。

下面是我自己的dbhelper類

public class DBHelper extends SQLiteOpenHelper {
    private static String dbName = "video_path.db";//數據庫名稱
    private static String initSQL;//初始化sql語句
    private static String upgradeSQL;//更新語句
    static {
        initSQL = "CREATE TABLE IF NOT EXISTS video_list (id INTEGER PRIMARY KEY AUTOINCREMENT, key NVARCHAR(255), file NVARCHAR(255));";
        upgradeSQL = initSQL;
    }
    public DBHelper(Context context, int version, String name) {
        super(context, name, null, version);

    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(initSQL);//創建數據庫
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

調用這個dbhelper類主要就是得到它的SQLiteDatabase,主要有兩個方法:getWritableDatabase  和 getReadableDatabase

下面我寫的調用方法:

public class MainActivity extends AppCompatActivity {
    Button btRead ;
    Button btWrite ;
    TextView tv ;
    DBHelper dbHelper ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        dbHelper = new DBHelper(this,1,"hello");
        tv = (TextView)findViewById(R.id.tv);
        btRead = (Button)findViewById(R.id.read_data);
        btRead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try{
                    String sql ="select * from video_list where key='a';";
                    Cursor cursor = dbHelper.getReadableDatabase().rawQuery(sql,null);
                    while (cursor.moveToNext()){
                        String file = cursor.getString(cursor.getColumnIndex("file"));
                        tv.setText(file);
                    }
                }catch (SQLException e){
                    e.printStackTrace();;
                }
            }
        });
        btWrite = (Button)findViewById(R.id.write_bt);
        btWrite.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    dbHelper.getWritableDatabase().execSQL("insert into video_list (key,file) values('a','hello.mpg');");
                }catch (SQLException e){
                    e.printStackTrace();
                }
            }
        });

    }



}

當調用read時,會在一個TextView中顯示hello.mpg就說明成功了。

如何查看數據庫呢?

如果沒有指定絕對路徑的路徑,那麼默認是在 "/data/data/包名"這個目錄下,首先在adb shell 下取得root權限。

1、首先設置權限:chmod 777 -R /data/data/包名  #  把這個目錄下具有所有的權限。

2、設置、/data 和、/data/data 777 權限

chmod 777 /data

chmod 777 /data/data 

3、也可以直接 chmod 777 -R /data 就行,但是我的手機是我經常用的手機,這樣的話,如果有病毒的話,支付寶、微信這些就app就比較危險了,不建議真機這樣做。

使用ddms把 databases目錄下的數據庫push到電腦上。

4.使用sqliteExport打開數據庫,這樣就ok了,不必使用sqlite命令行來打開它了,什麼年代了,還用命令行!。!

結果如下:


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