很多时候,都要用到数据库,为了方便有效的使用数据库,选择建立一个数据库管理类是一个很明智的选择
这里已Android的SQLite为例
package czhy.grey.sun.exam.bin.manager_; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Environment; import czhy.grey.sun.exam.bin.question_.Question; import czhy.grey.sun.exam.bin.question_.QuestionExtra; import java.io.File; public class DBManager{ private static final String DB_NAME = "exam_db.db"; //保存的数据库文件名 private static final String PACKAGE_NAME = "czhy.grey.sun.exam"; private static final String DB_PATH = "/data" + Environment.getDataDirectory().getAbsolutePath() + "/" + PACKAGE_NAME; //在手机里存放数据库的位置 private static final String DB_FILE = DB_PATH + "/" + DB_NAME; private static SQLiteDatabase database; public DBManager() { onCreate(); } private static void onCreate() { if (!(new File(DB_FILE).exists())) {//判断数据库文件是否存在,若不存在则新建(执行导入),否则跳过 /* 导入已有数据库 InputStream is = context.getAssets().open(DB_NAME); //欲导入的数据库 FileOutputStream fos = new FileOutputStream(DB_FILE); byte[] buffer = new byte[BUFFER_SIZE]; int count; while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); */ database = SQLiteDatabase.openOrCreateDatabase(DB_FILE,null); database.execSQL("CREATE TABLE [Type_](" + " [type_code] INTEGER PRIMARY KEY AUTOINCREMENT," + " [type_name] VARCHAR(50) NOT NULL)"); database.execSQL("CREATE TABLE [Subject_](" + " [subject_code] VARCHAR(5) PRIMARY KEY," + " [subject_name] VARCHAR(50) NOT NULL," + " [subject_count] INTEGER NOT NULL DEFAULT 0)"); database.execSQL("