Я работаю с intel XDK, и там у меня есть предварительно заполненный файл .db, который мне нужно прочитать внутри моего кода. Как и в обычном приложении, мы помещаем файлы db в каталог ресурсов, а затем обращаемся к этой базе данных, копируя их в каталог базы данных приложения. Я новичок в гибридных приложениях.Как читать данные из sqlite .db-файла в HTML 5/cordova/Intel xdk
ответ
Я сделал это с sql.js и XML HTTP запрос с использованием следующей части кода:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'yourDBname.db', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e)
{
mId = sessionStorage.i;
var uInt8Array = new Uint8Array(this.response);
var db = new SQL.Database(uInt8Array);
var contents = db.exec("SELECT * FROM ....your query");
// Do as per requirment
}
NB: Для просмотра базы данных, созданной вашим проектом, 1-й возьмите сборку окон и запустите проект.
Затем перейдите к C: \ Users \ XXXXX \ AppData \ Local \ Packages \ pakagename \ LocalState \ yourdbname.db
Вы можете найти файл DB вы можете просмотреть файл on this site
Для создание и использование базы данных Пожалуйста, используйте ссылку на сторонний плагин Intel XDK. Перед этим загрузите файл jar-файла зависимости проекта из GitHub и создайте каталог с именем SQLite плагина Cordova и поместите в него файл, включите файл jar. Затем попробуйте добавить плагин с помощью URL.
См весь код ниже данных базы данных 2.Add таблица 3.Add 1.Create таблице 4.Get данные из таблицы
> // Wait for Cordova to load
document.addEventListener('deviceready', onDeviceReady, false);
// Cordova is ready
function onDeviceReady() {
////////////////////////////////////////////////////////////////////////////////////////////////
alert("Start ");
var db = window.sqlitePlugin.openDatabase({ name: 'my.db', location: 'default' }, function() {
alert("database creatred");
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE customerAccounts (firstname, lastname, acctNo)');
alert("Table create");
addItem("first", "last", 100);
getData("last");
}, function (error) {
alert('transaction error: ' + error.message);
}, function() {
alert('transaction ok');
});
}, function (error) {
});
////////////////////////////////////////////////////////////////////////////////////////////////
function addItem(first, last, acctNum) {
alert("start adding");
db.transaction(function (tx) {
var query = "INSERT INTO customerAccounts (firstname, lastname, acctNo) VALUES (?,?,?)";
alert("start insterting");
tx.executeSql(query, [first, last, acctNum], function(tx, res) {
console.log("insertId: " + res.insertId + " -- probably 1");
console.log("rowsAffected: " + res.rowsAffected + " -- should be 1");
alert("insert complete");
},
function(tx, error) {
alert('INSERT error: ' + error.message);
});
}, function(error) {
alert('transaction error: ' + error.message);
}, function() {
alert('transaction ok');
});
}
////////////////////////////////////////////////////////////////////////////////////////////////
function getData(last) {
db.transaction(function (tx) {
alert("get data");
var query = "SELECT firstname, lastname, acctNo FROM customerAccounts WHERE lastname = ?";
alert("get data working");
tx.executeSql(query, [last], function (tx, resultSet) {
for(var x = 0; x < resultSet.rows.length; x++) {
alert("First name: " + resultSet.rows.item(x).firstname +
", Acct: " + resultSet.rows.item(x).acctNo);
}
},
function (tx, error) {
alert('SELECT error: ' + error.message);
});
}, function (error) {
alert('transaction error: ' + error.message);
}, function() {
alert('transaction ok');
});
}
///////////////////////////////////////////////////////////////////////////////////////////////////
}
Я попросил предустановленную базу данных sqlite, это решение для создания новой базы данных и ее использования. –
Ответ обновлен, пожалуйста, найдите его полезным для вас –