安卓开发使用Sqllite数据库动态存储数据

来源:互联网 发布:网络检测公司 编辑:程序博客网 时间:2024/06/05 12:48

公司刚分配的任务说需要用内置sqllite数据库开发一个app,这两天找了一下资料,终于成功。下面贴一下代码。

第一步,首先,在你的项目中res文件夹下,新建一个raw文件夹,然后把你建好的sqllite数据库放在这个文件夹下面。



第二部,新建一个DatabaseHelper类,继承自带的SQLiteOpenHelper

public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_PATH = "/storage/sdcard0/";   //你想把sqllite放在手机中的位置private static final String DATABASE_NAME = "dhxj.db";   //sqllite数据库名称private static final int DATABASE_VERSION = 3;private SQLiteDatabase database ;public  Context context;public DatabaseHelper(Context context) {super(context, DATABASE_PATH+"/"+DATABASE_NAME, null, DATABASE_VERSION);setContext(context);//openDatabase();}public void setContext(Context context){this.context = context;}public Context getContext(){return context;}public SQLiteDatabase getDatabase() {return database;}@Override public void onCreate(SQLiteDatabase db){}public SQLiteDatabase openDatabase() {        try {            // dhxj.db文件的绝对路径            String databaseFilename = DATABASE_PATH + "/" + DATABASE_NAME;            File dir = new File(DATABASE_PATH);            // 如果/storage/sdcard0/路径不存在,则创建这个路径            if (!dir.exists())                dir.mkdir();                      // 如果/storage/sdcard0/路径下存在dhxj.db这个数据库,把这个数据库删除//   /*    if((new File(databaseFilename)).exists())           {            new File(databaseFilename).delete();           }*/            //如果/storage/sdcard0/路径下不存在dhxj.db这个数据库,则将项目raw文件夹下的dhxj.db复制到你设置的绝对路径中           if (!(new File(databaseFilename)).exists()) {                // 获得封装dictionary.db文件的InputStream对象                            InputStream is = getContext().getResources().openRawResource(                        R.raw.dhxj);                FileOutputStream fos = new FileOutputStream(databaseFilename);                byte[] buffer = new byte[8192];                int count = 0;                // 开始复制dhxj.db文件                while ((count = is.read(buffer)) > 0) {                    fos.write(buffer, 0, count);                }                fos.close();                is.close();            }            // 打开/storage/sdcard0/目录中的dhxj.db文件            database = SQLiteDatabase.openOrCreateDatabase(                    databaseFilename, null);                             } catch (Exception e) {        }        finally{               }       return database;    } 


第三步,在需要调用数据库的时候加上下面的代码

DatabaseHelper mOpenHelper = new DatabaseHelper(this);      SQLiteDatabase db = mOpenHelper.openDatabase();



现在你就可以通过db对内置的sqllite数据库进行操作了







0 0
原创粉丝点击