android开发之使用SQLite数据库(db文件)

来源:互联网 发布:淘宝网如何投诉卖家 编辑:程序博客网 时间:2024/05/19 11:46

在开发中,有时需要使用db文件数据库,所以就需要将其导入项目,再将其使用程序写入到应用的db文件下使用。

代码很简单,可以拿来直接使用。

要使用需要两个步骤:

1.创建raw文件,导入db文件,如下:


2.代码

public class DBOpenHelper {private final int BUFFER_SIZE = 400000;public static final String DB_NAME = "idiom.db"; // 保存的数据库文件名public static final String PACKAGE_NAME = "cn.edu.bzu.happy";// 应用的包名public static final String DB_PATH = "/data"+ Environment.getDataDirectory().getAbsolutePath() +"/"+ PACKAGE_NAME+ "/databases"; // 在手机里存放数据库的位置//sdcard的路径(在android 4.4中不好使,文件成功创建是在手机的)//public static final String DB_PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/idiom";private Context context;public DBOpenHelper(Context context) {this.context = context;}public SQLiteDatabase openDatabase() {try {File myDataPath = new File(DB_PATH);if (!myDataPath.exists()){myDataPath.mkdirs();// 如果没有这个目录,则创建}String dbfile=myDataPath+"/"+DB_NAME;if (!(new File(dbfile).exists())) {// 判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库InputStream is = context.getResources().openRawResource(R.raw.idiom); // 欲导入的数据库FileOutputStream fos = new FileOutputStream(dbfile);byte[] buffer = new byte[BUFFER_SIZE];int count = 0;while ((count = is.read(buffer)) > 0) {fos.write(buffer, 0, count);}fos.close();is.close();}SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile,null);return db;} catch (FileNotFoundException e) {Log.e("Database", "File not found");e.printStackTrace();} catch (IOException e) {Log.e("Database", "IO exception");e.printStackTrace();}return null;}}

使用:

public class TestDao {private DBOpenHelper dbHelper;public TestDao (Context context) {dbHelper = new DBOpenHelper(context);}public List<Test> getAllTests() {List<Test> animals = new ArrayList<Test>();SQLiteDatabase sqLiteDatabase = dbHelper.openDatabase();Cursor cursor = sqLiteDatabase.rawQuery("select * from test", null);While(cursor.moveToNext()){//获取你的数据}}}

TestDao  test = new TestDao();test.getAllTests();




0 0
原创粉丝点击