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

公司刚分配的任务说需要用内置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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,可以通过以下步骤将SQLite数据库中的数据显示在Spinner上: 1.创建一个Spinner对象并将其添加到布局中。 2.创建一个数组或列表,用于存储SQLite数据库中检索的数据。 3.使用SQLiteOpenHelper类打开数据库,并使用SQLiteDatabase对象查询数据库以检索所需的数据。 4.将检索到的数据添加到数组或列表中。 5.创建一个ArrayAdapter对象,并使用该对象将数组或列表中的数据设置为Spinner的数据源。 6.设置Spinner的适配器为ArrayAdapter对象。 以下是一个简单的示例代码,用于将SQLite数据库中的数据显示在Spinner上: ``` //创建Spinner对象 Spinner spinner = (Spinner) findViewById(R.id.spinner); //创建一个空的ArrayList ArrayList<String> dataList = new ArrayList<String>(); //打开SQLite数据库 SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("mydatabase.db", null); //查询数据库以检索所需的数据 Cursor cursor = db.rawQuery("SELECT * FROM mytable", null); //将检索到的数据添加到ArrayList中 while(cursor.moveToNext()) { String data = cursor.getString(cursor.getColumnIndex("column_name")); dataList.add(data); } //关闭数据库连接 cursor.close(); db.close(); //创建ArrayAdapter对象,并将ArrayList设置为数据源 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, dataList); //设置Spinner的适配器为ArrayAdapter对象 spinner.setAdapter(adapter); ``` 请注意,此代码仅用于演示目的,实际应用程序可能需要根据具体情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值