gpt4 book ai didi

android-studio - 如何在 Windows 上查看 couchbase lite 数据库?

转载 作者:行者123 更新时间:2023-12-05 06:21:37 25 4
gpt4 key购买 nike

我是 couchbase lite 实现的新手,我在 Android 平台上工作,我已经创建了一个数据库,并在其中保存了一个简单的文档。现在我想提取数据库并查看其中保存的文档。我在 raw 文件夹中放置了一个示例 json,从 raw 读取并转换为 hashmap。以下是所有详细信息

代码

DatabaseManager class to create database

package com.example.couchbasesample;


import android.content.Context;

import com.couchbase.lite.CouchbaseLiteException;
import com.couchbase.lite.Database;
import com.couchbase.lite.DatabaseConfiguration;

import java.io.File;

public class DatabaseManager {

private final static String DATABASE_NAME = "couchbase_test";

public Database database;

private static DatabaseManager instance = null;

public DatabaseManager(Context context) {

// Set database configuration
try {

// Set Database configuration
DatabaseConfiguration config = new DatabaseConfiguration(context);
File dir = context.getDir("COUCH_ANDROID",Context.MODE_PRIVATE);
config.setDirectory(dir.toString());

// Create / Open a database with specified name and configuration
database = new Database(DATABASE_NAME, config);



}
catch (CouchbaseLiteException e) {
e.printStackTrace();
}

}



public static DatabaseManager getSharedInstance(Context context) {
if (instance == null) {
instance = new DatabaseManager(context);
}
return instance;
}


}

MainActivity

package com.example.couchbasesample;

import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.couchbase.lite.MutableDocument;
import com.google.gson.Gson;

import org.json.JSONObject;

import java.io.InputStream;
import java.util.HashMap;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {
private DatabaseManager dbMgr;

@BindView(R.id.btnSave)
Button btnSave;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);


// Initialize couchbase lite database manager
dbMgr = new DatabaseManager(this);

btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
JSONObject customerJSON = new JSONObject(getFileFromResources(MainActivity.this, "samplecustomer"));
/* HashMap<String, JSONObject> customerTest = new HashMap<>();
customerTest.put("1", customerJSON);*/
HashMap<String, Object> yourHashMap = new Gson().fromJson(customerJSON.toString(), HashMap.class);

MutableDocument doc = new MutableDocument(yourHashMap);
// 3. Save document to database.
dbMgr.database.save(doc);
Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_LONG).show();

} catch (Exception e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}


public static String getFileFromResources(Context context, String fileName) {
String json = null;
try {
InputStream is = context.getResources().openRawResource(
context.getResources().getIdentifier(fileName,
"raw", context.getPackageName()));
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (Exception ex) {
ex.printStackTrace();
}
return json;
}
}

我尝试了什么

我使用 android studio 中的“设备文件资源管理器”提取了数据库,当我保存 app_COUCH_ANDROID 文件夹并在数据库浏览器中打开 .sqlite 文件时,SQLite 无法查看保存的文档,而是随机显示我无法理解的数据。

enter image description here enter image description here enter image description here

*除此之外,我研究并找到了以下查看器,但无法将其用作 MAC OS。

https://github.com/couchbaselabs/CouchbaseLiteViewer *

我如何查看 couchbase lite 数据库。有人可以帮我解决这个问题吗?任何帮助将不胜感激。

最佳答案

如果您需要查找存储在数据库中的文档,请使用 getDocument或任何 Query APIs从您的应用程序中。

如果你想查询应用程序内容之外的数据库,那么你可以使用 cblite tool .这是一个命令行工具,可让您打开并检查 cblite2 数据库。

您尝试在嵌入数据库的应用程序上下文之外查找文档的任何原因?您无法使用标准的 sqlite 浏览器查看数据,因为数据是二进制编码并存储在 Fleece 中。格式。

关于android-studio - 如何在 Windows 上查看 couchbase lite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59711617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com