本文档部分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(整型),用于区分执行语句。 |
inSql | sql 语句。 |
cbExecuteSql(opId,dataType,data) ▲
参数名称 | 描述 |
opId | 操作ID。 |
dataType | 返回数据的数据类型为uex.cInt(值为2)。 |
data | 返回的int型的数据,0表示成功或1表示失败。 |
selectSql(inDBName,inOpCode,inSql) ▲
参数名称 | 描述 |
inDBName | 数据库名字。 |
inOpCode | 操作id(整型),用于区分执行语句。 |
inSql | sql 语句。 |
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>