SQLite数据库操作
安卓中创建数据库的步骤:
1、写一个类MyOpenHelper继承SQLiteOpenHelper类
2、覆写其中的OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
3、创建数据库:
MyOpenHelper helper = new MyOpenHelper(this);
//创建数据库 需要调用 getReadableDatabase 或 getWritableDatabase
helper.getReadableDatabase();//返回的数据类型为
SQLiteDatabase可以将其传给OnCreate(SQLiteDatabase db)
注:OnCreate(SQLiteDatabase db)是在数据库创建的时候调用的,主要用来初始化数据表结构和插入数据初始化的记录
onUpGrade是在数据库版本升级的时候调用的,主要用来改变表结构
安卓中的增删改查操作:在android应用程序中使用db.execSQL("sql",bindArgs)操作增删改查语句;
注:db为创建的数据库
public void onCreate(SQLiteDatabase db) {
//注:(_id是google推荐的)
db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20))");
}
常用的数据库操作:
创建表结构:create table person (id integer primary key autoincrement,name varchar(20));
插入:insert into person (name)values("lisi");
查询:select * from person;
更新:update person set name='wangwu' where id=1
删除:delete from person where id=1
官方提供的安卓操作数据库的方法:
查源码得该方法的低层是组拼了一个sql语句并将value
经过查看源码可知,nullColumnHack是在 values为空的时候才用的到,一般情况下我们是不会将values设置为空的所以该参数一般为null
ContentValues values = new ContentValues ();
values.put("name", "张飞");
values.put("number","120");
db.insert(table,null, values);
db.close();
查询:query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
注:columuns表示要查询的列,null表示查询所有
selection表示查询的条件
selectionArgs表示选择条件的参数
groupBy分组、having分组条件、orderBy排序、limit限制
//首先对cursor 进行判断
if (cursor!=null && cursor.getCount()>0) {
//循环取所有数据
while(cursor.moveToNext()){
}
}
/**
* whereClause 删除条件
* whereArgs 删除条件的参数
*/
int delete = db.delete("info", "name=?", new String[]{name});
eclipse中的代码模板:
![](http://images0.cnblogs.com/blog/709515/201501/260035227844894.png)
![](http://images0.cnblogs.com/blog/709515/201501/260035233161223.png)
![](http://images0.cnblogs.com/blog/709515/201501/260035236128780.png)
![](http://images0.cnblogs.com/blog/709515/201501/260035241753353.png)
得到SQLite数据库的几种常见的方法:
Open the database according to the flags
OPEN_READWRITE
OPEN_READONLY CREATE_IF_NECESSARY and/or NO_LOCALIZED_COLLATORS . | |
Open the database according to the flags
OPEN_READWRITE
OPEN_READONLY CREATE_IF_NECESSARY and/or NO_LOCALIZED_COLLATORS . | |
Equivalent to openDatabase(path, factory, CREATE_IF_NECESSARY, errorHandler).
| |
Equivalent to openDatabase(path, factory, CREATE_IF_NECESSARY).
| |
Equivalent to openDatabase(file.getPath(), factory, CREATE_IF_NECESSARY). |