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()方法