문제

JavaScript에서 sqlite 데이터베이스에 액세스하고 조작하기 위한 최상의 권장 사항입니다.

도움이 되었습니까?

해결책

글쎄요, 만약 당신이 클라이언트 측 JavaScript로 작업한다면, 운이 좋지 않을 것이라고 생각합니다...브라우저는 JavaScript 환경을 샌드박스하는 경향이 있으므로 데이터베이스 액세스와 같은 일반적인 기능으로는 컴퓨터에 액세스할 수 없습니다.

클라이언트 측에서 액세스되는 서버 측의 SQLite DB에 대해 이야기하는 경우 일부 서버 측 코드를 호출하여 액세스하는 AJAX 솔루션을 설정할 수 있습니다.

Rhino나 다른 서버측 JavaScript에 대해 이야기하고 있다면 SQLite(예: Rhino용 JDBC)에 대한 호스트 언어의 API 액세스를 조사해야 합니다.

아마도 귀하의 질문을 좀 더 명확히 할 수 있습니까?

다른 팁

라는 프로젝트가 있습니다. sql.js 이는 JavaScript의 SQLite 포트입니다.

sql.js는 Emscripten으로 SQLite C 코드를 컴파일하여 SQLite를 JavaScript로 포트한 것입니다.

자바스크립트 SQLite 솔루션 파노라마

브라우저에서

웹 브라우저 내부에서 SQLite 데이터베이스에 액세스하려는 경우 솔루션이 많지 않습니다.

sql.js

SQLite C 라이브러리는 자바스크립트로 포팅 사용하여 emscripten.포트는 다음과 같은 이름으로 시작되었습니다. sql.js 작성자: Alon Zakai(emscripten의 저자이기도 함)나는 현재 이 라이브러리의 관리자입니다.

API는 다음과 같습니다.

<script src='js/sql.js'></script>
<script>
    //Create the database
    var db = new SQL.Database();
    // Run a query without reading the results
    db.run("CREATE TABLE test (col1, col2);");
    // Insert two rows: (1,111) and (2,222)
    db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);

    // Prepare a statement
    var stmt = db.prepare("SELECT * FROM test WHERE a BETWEEN $start AND $end");
    stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111}

    // Bind new values
    stmt.bind({$start:1, $end:2});
    while(stmt.step()) { //
        var row = stmt.getAsObject();
        // [...] do something with the row of result
    }
</script>

웹 SQL

W3C는 브라우저 내에서 SQL을 실행하기 위한 기본 API 작업을 시작했습니다. 웹 SQL.해당 API 사용 예:

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
});

그러나 프로젝트는 버려진.따라서 널리 지원되지 않습니다.보다: http://caniuse.com/sql-storage

노드 내

노드에서 클라이언트 측 자바스크립트를 작성하는 경우 선택 사항이 조금 더 있습니다.보다: https://www.npmjs.org/search?q=sqlite .

노드-sqlite3

컴파일 툴체인이 있고 다른 플랫폼에 대해 애플리케이션을 컴파일해야 하는 것에 신경 쓸 수 없다면(또는 하나의 플랫폼만 대상으로) 다음을 사용하는 것이 좋습니다. node-sqlite3.빠릅니다(보다 훨씬 빠릅니다. sql.js)에는 완전한 API와 좋은 문서가 있습니다.API의 예는 다음과 같습니다.

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');

db.serialize(function() {
  db.run("CREATE TABLE lorem (info TEXT)");

  var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
  for (var i = 0; i < 10; i++) {
      stmt.run("Ipsum " + i);
  }
  stmt.finalize();

  db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
      console.log(row.id + ": " + row.info);
  });
});

db.close();

sql.js

네, 또요. sql.js 노드에서 사용할 수 있습니다.순수한 자바스크립트 애플리케이션을 원한다면 이것이 해결책입니다.그러나 이전 솔루션보다 속도가 느려집니다.

다음은 사용 방법의 예입니다. sql.js 노드에서:

var fs = require('fs');
var SQL = require('sql.js');
var filebuffer = fs.readFileSync('test.sqlite');

db.run("INSERT INTO test VALUES (?,?,?)", [1, 'hello', true]);  -- corrected INT to INTO


var data = db.export();
var buffer = new Buffer(data);
fs.writeFileSync("filename.sqlite", buffer);

구글 기어 sqlite 데이터베이스가 내장되어 있지만 이를 사용하려면 사람들이 이를 설치했는지 확인해야 합니다.

상황에 따라 설치를 강제할 수도 있습니다. 그렇지 않으면 있으면 좋은 것으로 취급해야 하지만 설치되지 않은 경우에도 사이트가 계속 작동하도록 점진적인 성능 저하가 필요합니다.

브라우저에서 SQLite 데이터베이스에 액세스하려는 경우(예:클라이언트 측) 이를 지원하려면 브라우저가 필요합니다.SpiderApe로 할 수 있습니다 http://spiderape.sourceforge.net/plugins/sqlite/ 이는 브라우저가 Mozilla 기반이라고 가정합니다(예:SQLite 지원).여전히 기본 라이브러리( http://www.mozilla.org/projects/security/comComponents/signed-scripts.html )

Javascript 프로그램에서 SQLite 데이터베이스로의 서버측 액세스를 찾고 있다면 다음과 같은 몇 가지 옵션이 있습니다.JSDB는 하나입니다 http://www.jsdb.org/ ;JSEXT 다른 http://jsext.sourceforge.net/ ;그리고 또 다른 jslib http://code.google.com/p/jslibs/

-- MV

그만큼 sql.js 라이브러리를 사용하면 클라이언트 측에서 SQL 쿼리를 호출할 수 있습니다.해당 라이브러리를 사용하면 .open(data) 및 .exportData()를 호출하여 서버와 클라이언트 간에 전체 데이터를 쉽게 스트리밍할 수 있습니다.이것은 매우 편리합니다.

게다가 HTML5에는 저장 능력, 그러나 새로운 기술 표준으로서 모든 클라이언트가 이를 지원한다고 가정할 수는 없습니다.

잔디의자 사용하기 쉬운 키/값 접근 방식을 제공하므로 SQL에 얽매이지 않는 경우 매우 좋은 옵션입니다.이 두 라이브러리는 클라이언트 측에서 SQL 데이터베이스 작업을 위한 완벽한 솔루션을 만듭니다.

또 다른 좋은 저장 라이브러리는 jstorage.클라이언트에서 "sql.js"의 데이터를 보존하는 데 사용할 수 있습니다.다양한 브라우저(모바일 브라우저, IE7 및 IE7 포함!)를 지원하며 브라우저 충돌에서도 살아남습니다.

Windows(HTA 또는 WSH)에서 권한 있는 스크립트를 실행하는 경우 "ADODB.Recordset" ActiveXObject를 사용하여 ODBC 데이터 소스에 액세스할 수 있습니다.

웹 페이지의 클라이언트 측에 대해 이야기하는 경우 위 게시물은 다음과 같습니다.Google Gears가 최선의 선택입니다.

Mozilla Firefox 스택에서 XUL API를 사용하여 이를 수행할 수 있습니다.이에 대한 튜토리얼은 다음과 같습니다.http://www.arashkarimzadeh.com/articles/10-xul/25-sqlite-api-for-xul-application-using-javascript.html

Mac에서?Scripting Bridge와 Patrick Geiller의 JSCocoa를 활용하는 Gus Meuller의 JSTalk를 살펴보십시오.

Gus는 여기서 Sqlite 지원에 대해 구체적으로 설명합니다. http://gusmueller.com/blog/archives/2009/03/jstalk_extras.html ...잘 작동합니다.

제이데이터 또한 JavaScript를 사용하여 sqlite/webSql로 작업할 수 있는 툴킷을 제공합니다.하지만 이 작업을 실행하려면 브라우저, Rhine 또는 Nodejs가 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top