webSQL数据库

Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 API。最新版的 Safari, Chrome 和 Opera 浏览器都支持Web SQL数据库。

核心方法

1、openDatabase : 打开现有的数据库或者创建一个新的数据库。
2、transaction : 这个方法能够帮我们控制一个事务。
3、executeSql : 用于执行SQL语句。

打开或创建数据库
/*
*@param name 数据库名称
*@param version 版本号
*@param describe 描述文本
*@param estimatedSize 数据库大小
*@param creationCallback 创建回调
*/
var database = openDatabase('name', 'version', 'describe','estimatedSize','creationCallback');
控制事务方法
/*
*@param callback 回调函数
*@param errorCallback 发生错误时回调函数
*@param successCallback 成功时回调函数
*/
database.transaction(callback,errorCallback,succeseCallback);
执行SQL语句的方法
/*
*@param sqlquery SQL语句
*@param [] 参数的数组
*@param 成功时的回调
*@param 失败时的回调
*/
transaction.executeSql(sqlquery,[],dataHandler,errorHandler); 
//参数数组例子
transaction.executeSql('INSERT INTO EXAM VALUES(?,?,?)'[],dataHandler,errorHandler);
实战一下

1、创建一个数据库,命名叫classOne

var classOne = openDatabase('classOne', '1.0', '班级人员', 2*1024*1024);

创建一个classOne数据
2、创建一个名字叫EXAM的表格

classOne.transaction(function(tx){
	//在classOne数据库中创建一个EXAM的表
	tx.executeSql('CREATE TABLE IF NOT EXISTS EXAM (id unique, name, grade, remark)');
});

创建一个名字叫EXAM的表格
3、向表格插入数据

classOne.transaction(function(tx){
	//插入数据
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (1, "王导", 100, "缺考")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (2, "燕燕", 88, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (3, "狗狗", 77, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (4, "赛赛", 99, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (5, "云云", 66, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (6, "梦", 100, "-")');
});

向表格中插入数据
4、查询库中的数据

classOne.transaction(function(tx){
	tx.executeSql('SELECT * FROM EXAM', [], function(tx, results){
		//console.log(results);
		for(var i = 0; i < results.rows.length; i++){
			console.log(results.rows.item(i).name);
		}
	}, function(tx, error){
		console.log(error);
	});
});

查询库中的数据
5、删除表格中“id=1”的那条数据

classOne.transaction(function(tx){
	tx.executeSql('DELETE FROM EXAM WHERE id=1');
});

删除库里一条数据
6、修改库里一条数据

classOne.transaction(function(tx){
	tx.executeSql('UPDATE EXAM SET grade=\'--\',remark=\'缺考\' WHERE id=2');
});

更新库里的数据
一个完整的例子

//创建一个classOne的数据库
var classOne = openDatabase('classOne', '1.0', '班级人员', 2*1024*1024);
classOne.transaction(function(tx){
	//在classOne数据库中创建一个EXAM的表
	tx.executeSql('CREATE TABLE IF NOT EXISTS EXAM (id unique, name, grade, remark)');
	//插入数据
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (1, "王导", 100, "缺考")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (2, "燕燕", 88, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (3, "狗狗", 77, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (4, "赛赛", 99, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (5, "云云", 66, "-")');
	tx.executeSql('INSERT INTO EXAM (id, name, grade, remark) VALUES (6, "梦", 100, "-")');
	//查询表格
	tx.executeSql('SELECT * FROM EXAM', [], function(tx, results){
		//console.log(results);
		for(var i = 0; i < results.rows.length; i++){
			console.log(results.rows.item(i).name);
		}
	}, null);
	//删除一条记录
	tx.executeSql('DELETE FROM EXAM WHERE id=1');
	//更新一条记录
	tx.executeSql('UPDATE EXAM SET grade=\'--\' WHERE id=2');
});
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity支持使用Web SQL数据库,它是一个基于浏览器的数据库,可以在Web应用程序中使用。它提供了一个简单的SQL接口,可以通过JavaScript来访问。 在Unity中使用Web SQL数据库需要用到UnityWebRequest类和JavaScript代码。以下是一个简单的示例: 1. 创建一个HTML文件,包含以下的JavaScript代码: ```javascript var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024); db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS MyTable (id unique, data)'); tx.executeSql('INSERT INTO MyTable (id, data) VALUES (?, ?)', [1, 'test data']); }); function getData() { db.transaction(function (tx) { tx.executeSql('SELECT * FROM MyTable', [], function (tx, results) { var len = results.rows.length, i; for (i = 0; i < len; i++) { console.log(results.rows.item(i)); } }, null); }); } ``` 2. 在Unity中创建一个C#脚本,使用UnityWebRequest类来加载HTML文件,并调用JavaScript代码: ```csharp using UnityEngine; using UnityEngine.Networking; public class WebSqlDatabase : MonoBehaviour { void Start() { StartCoroutine(LoadHtml()); } IEnumerator LoadHtml() { UnityWebRequest www = UnityWebRequest.Get(Application.dataPath + "/WebSqlDatabase.html"); yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { string html = www.downloadHandler.text; StartCoroutine(CallJavaScript(html)); } } IEnumerator CallJavaScript(string html) { string javaScript = "getData();"; Application.ExternalCall("eval", javaScript); yield return new WaitForEndOfFrame(); } } ``` 3. 将HTML文件和C#脚本放在Unity项目中,并将HTML文件的Load Type设置为“Streaming Asset”。 4. 运行Unity项目,可以在控制台中看到数据库中的数据。 注意:Web SQL数据库已被标记为过时技术,不再受支持。在新的Web应用程序中应该使用IndexedDB作为替代方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值