package com.pets.dao;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.List;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public abstract class BaseDao<T> extends SQLiteOpenHelper {
private static final String DB_FILE_NAME = "db_create.sql";
protected static final int version = 1;
public static final String NAME = "pets.db";
protected SQLiteDatabase db;
protected Context context;
public BaseDao(Context context, CursorFactory factory) {
super(context, NAME, factory, version);
this.context = context;
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
db.execSQL("DROP TABLE IF EXISTS pet_daily_subject");
Log.i("db_create", "删除表");
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("db_create", "建表。。。。。");
StringBuffer sql = new StringBuffer();
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(context
.getAssets().open(DB_FILE_NAME)));
String line = null;
while ((line = reader.readLine()) != null) {
sql.append(line);
}
} catch (IOException e) {
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Log.i("db_create", sql.toString());
db.execSQL(sql.toString());
}
public abstract T get(Serializable id);
public abstract List<T> getAll(int limit);
public abstract Serializable insert(T t);
public abstract Serializable update(T t);
public abstract Serializable delete(Serializable id);
}