如何提高sqlit数据库的查询效率
答案:2 悬赏:20 手机版
解决时间 2021-01-27 02:11
- 提问者网友:wodetian
- 2021-01-26 11:30
如何提高sqlit数据库的查询效率
最佳答案
- 五星知识达人网友:不甚了了
- 2021-01-26 13:08
如何提高sqlit数据库的查询效率
给sqlite的字段增加索引可以大大提高查找的速度。 使用Sqlite自带的FTS3 和 FTS4 虚拟表模型来进行全文分词检索的方法。
给sqlite的字段增加索引可以大大提高查找的速度。 使用Sqlite自带的FTS3 和 FTS4 虚拟表模型来进行全文分词检索的方法。
全部回答
- 1楼网友:怙棘
- 2021-01-26 13:16
要在android系统中操作sqlite数据库,是通过android的核心类sqlitedatabase类来实现的,通常情况下为了数据库升级的需要以及使用方便,我们会选择继承sqliteopenhelper抽像类,但是sqliteopenhelper会将数据库文件创建在一个固定的目录(内存的/data/data/目录中),如果你想使用已经存在的数据库文件也就是说数据库会和程序一起发布,就得通过使用sqlitedabase的静态方法openorcreatedatabase()方法来得到sqlitedabase对象,下面是一个具体操作类:
package net.my.dao;
import java.io.file;
import java.io.fileoutputstream;
import java.io.inputstream;
import net.my.jokebook.r;
import android.app.activity;
import android.content.context;
import android.database.sqlite.sqlitedatabase;
public class dbhelper {
//得到sd卡路径
private final string database_path = android.os.environment
.getexternalstoragedirectory().getabsolutepath()
+ "/joke";
private final activity activity;
//数据库名
private final string database_filename;
public dbhelper(context context) {
// todo auto-generated constructor stub
//这里直接给数据库名
database_filename = "jokebook.db3";
activity = (activity)context;
}
//得到操作数据库的对象
public sqlitedatabase opendatabase()
{
try
{
boolean b = false;
//得到数据库的完整路径名
string databasefilename = database_path + "/" + database_filename;
//将数据库文件从资源文件放到合适地方(资源文件也就是数据库文件放在项目的res下的raw目录中)
//将数据库文件复制到sd卡中 file dir = new file(database_path);
if (!dir.exists())
b = dir.mkdir();
//判断是否存在该文件
if (!(new file(databasefilename)).exists())
{
//不存在得到数据库输入流对象
inputstream is = activity.getresources().openrawresource(
r.raw.jokebook);
//创建输出流
fileoutputstream fos = new fileoutputstream(databasefilename);
//将数据输出
byte[] buffer = new byte[8192];
int count = 0;
while ((count = is.read(buffer)) > 0)
{
fos.write(buffer, 0, count);
}
//关闭资源
fos.close();
is.close();
}
//得到sqldatabase对象
sqlitedatabase database = sqlitedatabase.openorcreatedatabase(
databasefilename, null);
return database;
}
catch (exception e)
{
system.out.println(e.getmessage());
}
return null;
}
}
写完这个类之后,就能得到sqlitedatabase对象,就能对数据库操作了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯