로컬 데이터베이스

HTML5는 이미 강력한 localStorage와 sessionStorage를 제공하지만 둘 다 단순한 데이터 구조를 저장하기 위한 데이터만 제공할 수 있으며 복잡한 웹 애플리케이션 데이터에는 무력합니다. 놀라운 점은 HTML5가 브라우저 측 데이터베이스 지원을 제공하여 JS API를 통해 직접 브라우저 측에 로컬 데이터베이스를 생성할 수 있게 하고 표준 SQL CRUD 작업을 지원하여 오프라인 웹 애플리케이션이 구조화된 데이터를 보다 편리하게 저장할 수 있게 해준다는 것입니다. 다음으로 관련 API와 로컬 데이터의 사용법을 소개하겠습니다.

로컬 데이터베이스를 운영하는 가장 기본적인 단계는 다음과 같습니다.

1단계: openDatabase 메서드: 데이터베이스에 액세스하기 위한 개체를 만듭니다.

2단계: 첫 번째 단계에서 생성한 데이터베이스 액세스 개체를 사용하여 트랜잭션 메서드를 실행합니다. 이 메서드를 통해 이벤트 응답 메서드를 설정하여 트랜잭션을 성공적으로 시작할 수 있습니다.

3단계: ExecutionSql 메서드를 통해 쿼리를 실행합니다. 물론 쿼리는 CRUD일 수 있습니다.

다음으로 해당 메소드의 매개변수와 사용법을 소개하겠습니다.

1. openDatabase 메소드

//Demo: 데이터베이스를 가져오거나 생성합니다. 데이터베이스가 없으면 생성합니다.

var dataBase = openDatabase("student", "1.0", "学生表", 1024 * 1024, function () { });

openDatabase 메소드는 기존 데이터베이스를 엽니다. 데이터베이스가 존재하지 않는 경우 데이터베이스를 생성할 수도 있습니다. 여러 매개변수의 의미는 다음과 같습니다.

  • 데이터베이스 이름.

  • 현재 데이터베이스 버전은 1.0이면 충분합니다. 물론 입력할 필요는 없습니다.

  • 데이터베이스에 대한 설명입니다.

  • 할당된 데이터베이스의 크기를 설정합니다(단위는 kb).

  • 콜백 기능(생략가능).

처음 호출 시 데이터베이스를 생성한 후 연결하세요.

2. db.transaction 메소드

는 콜백 함수를 설정할 수 있습니다. 이 함수는 우리가 시작한 트랜잭션의 개체인 매개변수를 허용할 수 있습니다. 그런 다음 이 개체를 통해 SQL 스크립트를 실행할 수 있습니다.

3.executeSql 메소드는

ts.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)

매개변수 설명:

  • qlQuery: 생성, 선택, 업데이트, 삭제 등 구체적으로 실행해야 하는 SQL 문;

  • [value1, value2..]: sql 문에 사용되는 모든 매개 변수의 배열입니다.executeSql 메서드에서 s> 문에 사용할 매개 변수를 "?"로 바꾼 후 이러한 매개 변수의 배열을 구성하여 두 번째 매개변수

  • dataHandler: 성공적인 실행은 쿼리 결과 세트를 얻을 수 있는 콜백 함수입니다.

  • errorHandler: 실행 실패 시 호출되는 콜백 함수


지속적인 학습
||
<!DOCTYPE HTML> <html> <head> <script type="text/javascript"> var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024); var msg; db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, "php中文网")'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, "ask.php.cn")'); msg = '<p>数据表已创建,且插入了两条数据。</p>'; document.querySelector('#status').innerHTML = msg; }); db.transaction(function (tx) { tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { var len = results.rows.length, i; msg = "<p>查询记录条数: " + len + "</p>"; document.querySelector('#status').innerHTML += msg; for (i = 0; i < len; i++){ msg = "<p><b>" + results.rows.item(i).log + "</b></p>"; document.querySelector('#status').innerHTML += msg; } }, null); }); </script> </head> <body> <div id="status" name="status">状态信息</div> </body> </html>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~