本文档部分API缺少示例代码,诚挚的邀请你参与到示例代码的编写中来,你可以在代码中发布2行自定义注释,内容自拟。 有意者可与刺鸟联系(QQ:4041990 Q群:7702175)

API简介

uexDataBaseMgr本对象封装了SQLite数据库对象,能够实现数据的增删改查,以及事务操作,目前只支持IOS和Android系统。SQLite的语法请参考SQLite syntax

接口说明

方法说明
uexDataBaseMgr.openDataBase(inDBName,inOpCode)新建或open一个数据库。
uexDataBaseMgr.cbOpenDataBase(opId,dataType,data)新建或open一个数据库的回调方法。
uexDataBaseMgr.executeSql(inDBName,inOpCode,inSql)执行sql语句操作,建议用于增、删、改操作,经过笔者的一些测试,update or delete一个不存在的数据,执行结果都正确。
uexDataBaseMgr.cbExecuteSql(opId,dataType,data)执行sql语句操作的回调方法。
uexDataBaseMgr.selectSql(inDBName,inOpCode,inSql)执行select 查询语句操作。
uexDataBaseMgr.cbSelectSql(opId,dataType,data)查询Sql语句操作的回调方法。
uexDataBaseMgr.transaction(inDBName,inOpCode,inFunc)执行事务操作,同一个事务的多条uexDataBaseMgr.executeSql执行语句可不用定义回调方法
uexDataBaseMgr.cbTransaction(opId,dataType,data)执行事务操作的回调方法。
uexDataBaseMgr.closeDataBase(inDBName,inOpCode)关闭一个数据库.若页面跳转或窗口关闭时没有关闭数据库,则系统会自动关闭数据库。
uexDataBaseMgr.cbCloseDataBase(opId,dataType,data)关闭一个数据库的回调方法。
openDataBase(inDBName,inOpCode)
参数名称描述
inDBName数据库的名字。
inOpCode操作id(整型),可为空“”
cbOpenDataBase(opId,dataType,data)
参数名称描述
opId操作ID。
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的int型的数据,0表示成功或1表示失败。
executeSql(inDBName,inOpCode,inSql)
参数名称描述
inDBName数据库名字。
inOpCode操作id(整型),用于区分执行语句。
inSqlsql 语句。
cbExecuteSql(opId,dataType,data)
参数名称描述
opId操作ID。
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的int型的数据,0表示成功或1表示失败。
selectSql(inDBName,inOpCode,inSql)
参数名称描述
inDBName数据库名字。
inOpCode操作id(整型),用于区分执行语句。
inSqlsql 语句。
cbSelectSql(opId,dataType,data)
参数名称描述
opId操作ID。
dataType返回数据的数据类型为uex.cJSON(值为1)。
data返回数据,JSON格式(数组形式),通过eval('('+data +')')转换为JSON对象。
transaction(inDBName,inOpCode,inFunc)
参数名称描述
inDBName数据库名字。
inOpCode操作id(整型),用于区分执行语句。
inFunc在事务中执行的function,function里写多条uexDataBaseMgr.executeSql语句。
cbTransaction(opId,dataType,data)
参数名称描述
opId操作ID。
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的int型的数据,0表示成功或1表示失败。
closeDataBase(inDBName,inOpCode)
参数名称描述
inDBName数据库的名字。
inOpCode操作id(整型),可为空“”
cbCloseDataBase(opId,dataType,data)


参数名称描述
opId操作ID。
dataType返回数据的数据类型为uex.cInt(值为2)。
data返回的int型的数据,0表示成功或1表示失败。



// 本代码由寒暄提供,如有bug请和寒暄联系(QQ:457696322 Q群:7702175)
<!DOCTYPE html>
<html>
<head>
<title>AppCan API uexDataBaseMgr</title>
<meta charset='utf-8'>
<script>
    var dbName = '';
     var opID = 0;
    window.uexOnload = function(type){
        if(!type){
            dbName = $$('name').value;
        }
    }
    function $$(id){
        return document.getElementById(id);
    }
    /**
     * 打开、创建数据库
     */
    function createDB(){
        dbName = $$('name').value;
        if(dbName==''){
            console.log('数据库名字为空');
            return;
        }
        uexDataBaseMgr.cbOpenDataBase = function(opId, dataType, data){
            if(dataType == 2&&data == 0){
                alert('数据库打开/创建成功');
                console.log('数据库打开/创建成功!');
            }else{
                console.log('数据库打开/创建失败!');
            }
        }
        uexDataBaseMgr.openDataBase(dbName,++opID);
    }
    /**
     * 表的创建
     * 使用执行语句方法进行创建CREATE TABLE testTable(_id INTEGER PRIMARY KEY,name TEXT);
     */
    function createTable(){
        uexDataBaseMgr.cbExecuteSql = function(opId, type, data){
            if(type == 2 &&data == 0){
                alert('表创建成功');
                console.log('表创建成功!');
            }else{
                console.log('表创建失败!');
            }
        }
        var sql = 'CREATE TABLE testTable(_id INTEGER PRIMARY KEY,name TEXT);';
        uexDataBaseMgr.executeSql(dbName,++opID,sql);
    }
    /**
     * 插入一条数据
     * 使用执行语句插入一条数据INSERT INTO testTable (name) VALUES ('这是测试')
     */
    function insertData(){
        uexDataBaseMgr.cbExecuteSql = function(opId, type, data){
            if(type == 2 &&data == 0){
                alert('数据插入成功');
                console.log('数据插入成功!');
            }else{
                console.log('数据插入失败!');
            }
        }
        var sql = "INSERT INTO testTable (name) VALUES ('这是测试');";
        uexDataBaseMgr.executeSql(dbName,++opID,sql);
    }
    /**
     * 数据库的查询
     * 使用查询语句进行查询select * from testTable
     */
    function selectData(){
        uexDataBaseMgr.cbSelectSql = function(opId,type,data){
            if(type==1 ){
                alert('exeSql:'+opId+','+type+','+data);
                console.log('exeSql:'+opId+','+type+','+data);
            }else{
                console.log('查询失败!');
            }
        }
        var sql = 'select * from testTable;';
        uexDataBaseMgr.selectSql(dbName,++opID,sql);
    }
    /**
     * 事务的执行
     * 同一个事务的多条uexDataBaseMgr.executeSql执行语句可不用定义executeSql的回调方法
     */
    function transaction(){
        uexDataBaseMgr.cbTransaction=function(opId,dataType,data){
            if(dataType==2){
                if(data==0){
                
                    alert('事务执行成功');
                    console.log('事务执行成功');
                    }
                if(data==1)
                {
                    alert('事务执行失败');
                    console.log('事务执行失败');
                }
                    
            }
        }
        var opid = ++opID;
        uexDataBaseMgr.transaction(dbName,opi,function(){
            uexDataBaseMgr.cbExecuteSql = null;
            var sql1 = 'DELETE FROM testTable WHERE _id = 1;';
            var sql2 = 'UPDATE testTable SET name = appcan WHERE _id = 2;';
            uexDataBaseMgr.executeSql(dbName,opid,sql1);
            uexDataBaseMgr.executeSql(dbName,opid,sql2);
        });
    }
    /**
     * 关闭数据库
     */
    function closeDataBase(){
        uexDataBaseMgr.cbCloseDataBase = function closeDataBaseCallBack(opid,type,data){
            if(type == 2&&data == 0){
                console.log('数据库关闭成功!');
            }else{
                console.log('数据库关闭失败!');
            }
        }
        uexDataBaseMgr.closeDataBase(dbName,++opID);
    }
</script>
</head>
<body>
    <span>数据库功能</span><br/>
    <span>1.打开/创建数据库:</span><br/>
    <input type='text' id='name' value='uexDB'/><br/>
    <input type='button' value='打开/创建数据库' onclick='createDB()'/><br/>
    <span>2.创建表:</span><br/>
    <input type='text' id = 'createTable' value='CREATE TABLE testTable(_id INTEGER PRIMARY KEY,name TEXT);'/><br/>
    <input type='button' value='创建表'onclick='createTable();'><br/>
    <span>3.插入数据:</span><br/>
    <input type='text' id = 'insertData' value = 'INSERT INTO testTable (name) VALUES ('这是测试')'/><br/>
    <input type='button' value='插入数据'onclick='insertData();'><br/>
    <span>4.查询数据:</span><br/>
    <input type='text' id = 'selectData'value='select * from testTable'/><br/>
    <input type='button' value='查询数据'onclick='selectData();'><br/>
    <span>5.事务:</span><br/>
    <input type='text' id = 'selectData1'value='DELETE FROM testTable WHERE _id = 1'/><br/>
    <input type='text' id = 'selectData2'value='UPDATE testTable SET name = appcan WHERE _id = 2'/><br/>
    <input type='button' value='事务'onclick='transaction();'><br/>
    <span>6.关闭数据库:</span><br/>
    <input type='button' value='关闭数据库'onclick='closeDataBase();'><br/>
</body>
</html>