package com.sea.weatherdatabase;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MyDBOpenHelper extends SQLiteOpenHelper{
//onCreate,onUpdate,构造器缺一不可;
public MyDBOpenHelper(Context context, String name, CursorFactory factory,
int version) {
//自动创建一个name数据库,如果存在的话,不再创建
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//在此创建一个表,如果存在就不再执行。会自动识别
db.execSQL("create table data (" +
"_id varchar(4) not null primary key," +
"code varchar(15) not null," +
"time varcher(15) not null;");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//当版本改变后,执行这个方法。
db.execSQL("drop table user;");
onCreate(db);
}
}
以上为 SQLiteOpenHelper的创建。
对SQLite的操作:
1. SQLiteOpenHelper 负责对数据库的管理,包括数据库的创建,表的建立,数据库版本的管理;
如果数据库不存在,则创立;如果已经存在了,则该类会自动识别,并且不再创建;
SQLiteDatabase db = helper.getWritableDatabase();
SQLiteDatabase db = helper.getReadableDatabase();
int delete(String table, String whereClause, String[] whereArgs)
//方便对数据表操作了,删除行.
long insert(String table, String nullColumnHack, ContentValues values)
//插入行
Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
//查询,返回一个结果集
int update(String table, ContentValues values, String whereClause, String[] whereArgs)
对数据库进行更新
void execSQL(String sql)
//执行sql语句,不能是查询语句
//SQLite是一个很强大的类,几乎可以对数据库做任何操作(因为可以直接执行一个sql语句),但是最好与SQLiteOpenHelper(提供了非常方便的方式来创建数据库和表)配合使用。