mui结合android使用sqlite数据库

打算做一个离线的app,数据从android中sqlite查询,如果是普通的android项目也就到此为止了,可这个项目使用的是h5的页面+mui,app只是个壳子,想着使用mui通过js调用android的方法,然后android使用sqlite去执行查询操作返回json,一路坎坷,心酸泪就不说了,记录下这个的成果,以备以后使用!

mui中的manifest.json中配置自己需要方法

"permissions": {
  "sso":{
    "description": "sso"
  }
}

android中java下自己的包中新建一个类继承StandardFeature(此类是5+sdk的东西,需要引用SDK)

public class Sso extends StandardFeature

我遇到的问题,是怎么在一个类中操作sqlite,我百度了一大把操作sqlite的文档,都是让见一个dbHelper的类去操作

其中的构造方法的Context我不明白我该从这个类中传什么过去。于是百度...

终于搜到了一个

getApplicationContext()

然后我想着通过这个去获取raw下的资源然后放到本地的存储卡上,

定义要存储的位置及数据库的名称

private final String DATABASE_PATH = android.os.Environment
        .getExternalStorageDirectory().getAbsolutePath()
        + "/dictionary";
private final String DATABASE_FILENAME = "dm.db";
String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;
File dir = new File(DATABASE_PATH);
// 如果/sdcard/dictionary目录中存在,创建这个目录
if (!dir.exists())
    dir.mkdir();
// 如果在/sdcard/dictionary目录中不存在
// dictionary.db文件,则从res\raw目录中复制这个文件到
// SD卡的目录(/sdcard/dictionary)

if (!(new File(databaseFilename)).exists()) {
    // 获得封装dictionary.db文件的InputStream对象
    InputStream is  = getApplicationContext().getResources().openRawResource(R.raw.dm);
    FileOutputStream fos = new FileOutputStream(databaseFilename);
    byte[] buffer = new byte[8192];
    int count = 0;
    // 开始复制dictionary.db文件
    while ((count = is.read(buffer)) > 0) {
        fos.write(buffer, 0, count);
    }

    fos.close();
    is.close();
}
// 这里写你的业务逻辑即可
SQLiteDatabase db = openOrCreateDatabase(databaseFilename, null);
查询
Cursor c = db.rawQuery("select * from dmb where", null)
if (c != null) {
    while (c.moveToNext()) {
        //遍历
    }
    c.close();
    db.close();
}
返回数据即可
return JSUtil.wrapJsVar(jsonArray.toString());

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半块橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值