Android系列之SQLite与Android Studio的数据交互

1.创一个DbHelper类,实际代码如下:

[java] view plain copy
package com.laci.db;  

import android.content.Context;  
import android.database.sqlite.SQLiteDatabase;  
import android.database.sqlite.SQLiteOpenHelper;  
import android.util.Log;  

/** 
 * Created by Laci on 2017/6/25. 
 */  

public class DbHelper extends SQLiteOpenHelper{  
    /** 
     * 
     * @param context 上下文 
     * @param name 数据库的名字 
     * @param factory 数据库工厂,null 
     * @param version  数据库的版本 
     */  
    public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {  
        super(context, name, factory, version);  
    }  

    @Override  
    public void onCreate(SQLiteDatabase db) {  
    }  

    @Override  
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
    }  
}  
``

2、然后再相同的目录下创一个DbManager类,就可以了

[java] view plain copy
package com.laci.db;  

import android.content.Context;  
import android.database.sqlite.SQLiteDatabase;  
import android.os.Environment;  

import com.zking.laci.android_project.R;  

import java.io.File;  
import java.io.FileOutputStream;  
import java.io.InputStream;  

/** 
 * Created by Laci on 2017/6/27. 
 */  

public class DbManager {  
    public static final String DB_NAME = "wenwen.db"; //数据库名字  
    public static final String PACKAGE_NAME ="com.zking.laci.android_project";//包名  
    public static final String DB_PATH = "/data" + Environment.getDataDirectory().getAbsolutePath() + "/" + PACKAGE_NAME;   //数据库的绝对路径( /data/data/com.*.*(package name))  
    private SQLiteDatabase db;  
    private Context context;  

    public DbManager(Context context) {  
        this.context = context;  
    }  

    //对外提供的打开数据库接口  
    public void openDataBase() {  
        this.db = this.openDataBase(DB_PATH + "/databases");  
    }  

    //获取打开后的数据库  
    public SQLiteDatabase getDb() {  
        return this.db;  
    }  

    // 本地打开数据方法  
    private SQLiteDatabase openDataBase(String filePath) {  
        try {  
            File file = new File(filePath);  
            if (!file.exists()) { //判断文件是否存在  
                //通过输入流和输出流,把数据库拷贝到"filePath"下  
                file.mkdir();  
                File file2=new File(filePath+"/"+DB_NAME);  
                if (!file2.exists()) {  
                    InputStream is = context.getResources().openRawResource(R.raw.wenwen);//获取输入流,使用R.raw.test资源  
                    FileOutputStream fos = new FileOutputStream(file2);  
                    byte[] buffer = new byte[1024];  
                    int readCount;  
                    while ((readCount = is.read(buffer)) > 0) {  
                        fos.write(buffer, 0, readCount);  
                    }  
                    fos.close();  
                    is.close();  
                }  
            }  
//打开数据库  
            SQLiteDatabase db =new DbHelper(context,"wenwen.db",null,2).getWritableDatabase();  
            return db;  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return null;  
    }  

    //关闭数据库  
    public  void closeDataBase()  
    {  
        if(this.db!=null)  
            db.close();  
    }  
}  

3.调用

[java] view plain copy
DbManager dbManager=new DbManager(getApplicationContext());  
       dbManager.openDataBase();  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值