Mars视频笔记——SQLite

http://www.sqlite.org/

 

操作数据库步骤

1获得一个SQLiteOpenHelper对象(抽象类 需要自己写个类继承 重写3个onXXX代码)

2通过getXXX获得SQLiteDatabase对象

3通过SQLiteDatabase对数据库进行操作

 

SQLiteOpenHelper 助手类

getReadableDatabase() 创建或打开一个可读SQLiteDatabase

getWritableDatabase() 创建或打开一个可读写SQLiteDatabase

onCreate(SQLiteDatabase db)

在第一次创建数据库时候执行,在第一次得到SQLiteDatabase方法时会执行(getXXX)

可以在其中执行db.execSQL("create table user(id int,name varchar(20))");

onOpen(SQLiteDatabase db)

onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)

 

SQLiteDatabase类提供了操作数据库的方法

 

adb访问SQLite

命令行输入adb 可以看到帮助信息

adb shell 进入Linux命令行

ls -l 进入data目录cd data

再次进入data中的data目录 cd data

进入到自己的应用程序中 比如 cd mars.sqlite3(其实是包名)

创建数据库后 会有databases目录 里面存放数据库文件

sqlite3 [数据库名] 进入sqlite命令环境

使用SQL语句  .schema 等等

 

数据库增删改查

生成ContentValues 放键值对 键位列名 值为插入的值 数据类型必须匹配

values.put("id",1);

通过得到的SQLiteDatabase对象db

用db.inset([表名],null,ContentValues对象);//插入

db.update([表名],ContentValues对象,"id=?(?是占位符)"(where子句),new String[]{"1"}(给占位符赋值));//更新

db.query([表名],[列名数组],[where子句],[占位符参数],[groupby],[having],[orderby]);

query语句返回一个Cursor对象

类似JDBC cursor.moveToNext()移到第一条记录

注意和resultSet区别,不能getString(列名),要根据列号

就是cursor.getString(cursor.getColumn("列名"))才能取得数据

 

 

在SQLiteOpenHelper的子类中必须有构造函数

参数包括Context String CursorFactory factory等

 

DatabaseHelper作为一个访问SQLite的助手类,提供2个方面的功能

1 getXXX方法获得SQLiteDatabase对象

2 提供了onCreate() onUpdate()方法

你可能感兴趣的:(android,sqlite)