Android导入数据库

来源:互联网 发布:软件开发助理工程师 编辑:程序博客网 时间:2024/06/01 19:20

一. 创建数据库建立Android项目

用Navicat Premium建立所需数据库若数据过多可以先在Excel中录入再进行导入

二.将现有数据库导入到Android里面

在Android的res文件夹下建立raw文件直接将数据库粘贴到raw下

然后建立一个java项目代码如下

public class DBOpenHelper {
 private final int BUFFER_SIZE=400000;//缓冲区大小
 public static final String DB_NAME="idioms.db"; //保存的数据库文件名
 public static final String PACKAGE_NAME="com.example.happyidiom";//应用的包名
 public static final String DB_PATH="/data"
 +Environment.getDataDirectory().getAbsolutePath()+"/"
 +PACKAGE_NAME+"/databases";//在手机里存放数据库的位置
 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.idioms);
   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 DBOpenHelperTest extends AndroidTestCase{
 
 public void testDBCopy(){
  DBOpenHelper dBOpenHelper=new DBOpenHelper(getContext());
  dBOpenHelper.openDatabase();
 }

}

然后在项目上右击后选择run as ——>Android Junit Test

出现以下两张图视为成功






0 0
原创粉丝点击