H5本地存储二

1.新建数据库

DEMODB = openDatabase(
    shortName, //数据库名,浏览器和SQL语句中会用到
    version, //openDatabase 的版本,用1.0就可以了
    displayName, //数据库显示的全名/描述
    maxSize //数据库期望的上限体积大小
);

2.执行方法

 DEMODB.transaction(
        function (transaction) {
            transaction.executeSql(sql, [参数]argument, 回调函数callback, 错误处理errorCallback);
        }
    );

3.处理返回集

function callback(transaction, results){
    for (var i=0; i<results.rows.length; i++) {
        var row = results.rows.item(i);//row为每一行
        xx=row['colName'];//colName为字段名
    }
}


demo:


1.初始化数据库后,新建一张表添加默认数据。

/**
*初始化数据库
*/
function initDatabase() {
    try {
        if (!window.openDatabase) {//先检测一下浏览器是否支持这个方法,如果不支持进行提示
            alert('Databases are not supported in this browser.');
        } else {否则创建数据库
            var shortName = 'DEMODB';
            var version = '1.0';
            var displayName = 'DEMO Database';
            var maxSize = 100000; //  bytes
            DEMODB = openDatabase(shortName, version, displayName, maxSize);
            createTables();//创建表结构
            selectAll();//查询所有值
        }
    } catch(e) {//异常处理
        if (e == 2) {
            // Version number mismatch.
            console.log("Invalid database version.");
        } else {
            console.log("Unknown error "+e+".");
        }
        return;
    }
}


function createTables(){
    DEMODB.transaction(
        function (transaction) {
            transaction.executeSql('CREATE TABLE IF NOT EXISTS demodb(id INTEGER NOT NULL
            PRIMARY KEY, name TEXT NOT NULL,password TEXT NOT NULL);',
             [], nullDataHandler, errorHandler);
        }
    );
    insertData();//添加数据
}
//添加数据
function insertData(){
    DEMODB.transaction(
        function (transaction) {
            var data = ['1','hello','word'];
            transaction.executeSql("INSERT INTO demo(id,name, password) VALUES (?, ?, ?, ?, ?)"
            , [data[0], data[1], data[2]);
        }
    );
}

2.查询数据

function selectAll(){
    DEMODB.transaction(
        function (transaction) {
            transaction.executeSql("SELECT * FROM demodb;", [],callbackHandler, errorHandler);
        }
    );
}
function callbackHandler(transaction, results){
    
    for (var i=0; i<results.rows.length; i++) { 
        var row = results.rows.item(i);
        var newFeature = new Object();
        name   = row['name'];
        password = row['password'];
        document.getElementById("test").value=name;
    }

}




参考自:http://www.oschina.net/question/12_26204



转载于:https://my.oschina.net/u/2255569/blog/338369

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值