HTML5plus SQLite 方法封装 demo

SQLite模块用于操作本地数据库文件,可实现数据库文件的创建,执行SQL语句等功能。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title></title>
	

	

</head>
<body>
	<button type="button" id="create">创建数据库</button>
	<button type="button" id="vad">检查是否打开</button>
	<button type="button" id="close">关闭数据库</button>
	<button type="button" id="sw">开启事务</button>
	<div id="sql">
		<!-- <input type="" name=""  value="" /> -->
		<button type="button" id="sql">写入</button>
	</div>
	<div id="select" >
		<input type="" name="" value="select * from database" />
		<button type="button" class="select">查询</button>
	</div>
	<button type="button" id="del">删除表</button>
	
	<table   border="" cellspacing="" cellpadding="">

	</table>
</body>
	<script src="js.js" type="text/javascript" charset="utf-8"></script>
	<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
	<script type="text/javascript">
		if(window.plus){
			plusReady();
		}else{
			document.addEventListener('plusready', plusReady, false);
		}
		function plusReady(){
		}
		var bdName="musicList";//定义数据库名称
		$("#create").click(function(){
			createDb(bdName);//打开数据库,不存在自动创建,所以不要乱写
		}) 
		$("#vad").click(function(){
			alert(validBdOpen(bdName));//检查数据库是否打开,返回boolean
		})		
		$("#close").click(function(){
			closeDB(bdName);//关闭数据库
		})	
		$("#sw").click(function(){
			transactionDB(bdName,"begin");//数据库开启事务  begin(开始事务)、commit(提交)、rollback(回滚)。
		})	

		var databaseName="database";//定义表的名字
		
		$(".select").click(function(){
			/**
			 * 查询方法
			 * bdName 数据库名字
			 * sql 查询语句
			 */
			var sql=$("#select input").val();
			selectMusicListSQL(bdName,sql,function(data){
				console.log(JSON.stringify(data));
				for (var i = 0; i < data.length; i++) {
					var dom=""+data[i].id+""+data[i].playUrl+""+data[i].imgUrl+""+data[i].classification+""+data[i].authorName+""
					$("table").append(dom)
				}
			});
		})	
		
		$("#sql").click(function(){
			var baseSql='create table if not exists '+databaseName+'("id" INT(100),"playUrl" CHAR(100),"imgUrl" CHAR(100),"classification" CHAR(100),"authorName" CHAR(100),"songName" CHAR(100),"seletype" INT(10),"createTime" CHAR(10))';
			/**执行增删改操作
			 * bdName 数据库的名字
			 * databaseName 表名字
			 * baseSql 所执行语句中必须包含的数据结构
			 * sql 执行的增删改查语句
			 * 个人建议这个sql执行语句可以根据分的表写死当前方法,当然也可以复用
			 */
			for (var i = 1; i < 10; i++) {
				var sql="insert into database values("+i+",'playUrl ','imgUrl','classification','authorName','songName',1,'2019-01-01')";
				executeMusicListSQL(bdName,baseSql,sql);
			}
		 
		})	
		$("#del").click(function(){
			var baseSql='create table if not exists '+databaseName+'("id" INT(100),"playUrl" CHAR(100),"imgUrl" CHAR(100),"classification" CHAR(100),"authorName" CHAR(100),"songName" CHAR(100),"seletype" INT(10),"createTime" CHAR(10))';
			/**执行增删改操作
			 * bdName 数据库的名字
			 * databaseName 表名字
			 * baseSql 所执行语句中必须包含的数据结构
			 * sql 执行的增删改查语句
			 * 个人建议这个sql执行语句可以根据分的表写死当前方法,当然也可以复用
			 */
			for (var i = 1; i < 10; i++) {
				var sql="delete from "+databaseName+"";
				executeMusicListSQL(bdName,baseSql,sql);
			}
		})



	</script>
</html>

js


function createDb(name){
	plus.sqlite.openDatabase({
			name: name,
			path: '_doc/'+name+'.db',
			success: function(e){
				console.log('openDatabase success!');
			},
			fail: function(e){
				console.log('openDatabase failed: '+JSON.stringify(e));
			}
		});
}

function validBdOpen(name){
	return plus.sqlite.isOpenDatabase({
		name: name,
		path: '_doc/'+name+'.db'
	});
}


// 关闭数据库
function closeDB(name){
	plus.sqlite.closeDatabase({
		name: name,
		success: function(e){
			console.log('数据库关闭 success!');
		},
		fail: function(e){
			console.log('数据库关闭 failed: '+JSON.stringify(e));
		}
	});
}

// 执行事务 begin(开始事务)、commit(提交)、rollback(回滚)。
function transactionDB(name,operation){
	plus.sqlite.transaction({
		name: name,
		operation: operation,
		success: function(e){
			console.log('transaction success!');
		},
		fail: function(e){
			console.log('transaction failed: '+JSON.stringify(e));
		}
	});
}

// 执行SQL语句
function executeMusicListSQL(name,baseSql,sql){
	plus.sqlite.executeSql({
		name: name,
		sql: baseSql,
		success: function(e){
			console.log('executeSql success!');
			plus.sqlite.executeSql({
				name: name,
				sql: sql,
				success: function(e){
					console.log('写入成功 success!');
				},
				fail: function(e){
					console.log('写入失败 failed: '+JSON.stringify(e));
				}
			});
		},
		fail: function(e){
			console.log('executeSql failed: '+JSON.stringify(e));
		}
	});
}

// 查询SQL语句
function selectMusicListSQL(name,sql,success){
	plus.sqlite.selectSql({
		name: name,
		sql: sql,
		success: function(data){
			console.log('selectSql success: ');
			if(data.length==0){
				alert("查询为空")
			}
			success(data)
		},
		fail: function(e){
			console.log('selectSql failed: '+JSON.stringify(e));
		}
	});
}
export default {  
    websiteUrl,  
    now,  
    isArray  
}	
	
	

你可能感兴趣的:(HTML5plus)