phonegap sqlite (android)

在android环境下使用phonegap操作sqlite,代码见附件。

效果图:

 



 



 

(function(){
	$('#main').live('pageshow',function(){
		
		$('#createBtn').bind('click',function(){
			create('test','1.0','testDb',1000000);
		});
		
		$('#DropBtn').bind('click',function(){
			dropTable('DEMO','test','1.0','testDb',1000000);
		});
		
		$('#selectBtn').bind('click',function(){
			select('test','1.0','testDb',1000000);
		});
		
		$('#insertBtn').bind('click',function(){
			$('#addWindow').popup('open');
		});
		
		$('#saveBtn').bind('click',onSaveBtnClick);
		
		$('#deleteBtn').bind('click',onDeleteBtnClick);
	});
	
	function onSaveBtnClick(){
		var id = $('#idfield').val();
		var data = $('#datafield').val();
		if(id!=''&& data!=''){
			var db = getDb('test','1.0','testDb',1000000);
			db.transaction(function(tx){
				tx.executeSql('INSERT INTO DEMO (id, data) VALUES (?, ?)', [id,data]);				
			}, errorCB, function(){
				$('#addWindow').popup('close');
				alert('新增成功');
				$('#selectBtn').trigger('click');
				$('#msgdiv').empty();
				$('#idfield').val('');
				$('#datafield').val('');
			});
		}else{
			$('#msgdiv').text('请输入id和data!!');
		}
	}
	
	function onDeleteBtnClick(){
		var db = getDb('test','1.0','testDb',1000000);
		db.transaction(function(tx){
			tx.executeSql('DELETE FROM DEMO');				
		}, errorCB, function(){
			alert('成功删除全部记录!');
			$('#resultList > tbody').empty();
		});
	}

	function getDb(dbName,dbVersion,dbDisplayname,dbSize){
		return window.openDatabase(dbName, dbVersion,dbDisplayname, dbSize);
	}
	
	function select(dbName,dbVersion,dbDisplayname,dbSize){
		var db = getDb(dbName,dbVersion,dbDisplayname,dbSize);
		db.transaction(queryDB, errorCB);        		
	}
	
	function dropTable(tableName,dbName,dbVersion,dbDisplayname,dbSize){
		var db = getDb(dbName,dbVersion,dbDisplayname,dbSize);
		db.transaction(function(tx){
			tx.executeSql('DROP TABLE IF EXISTS '+tableName);			
		}, errorCB,function(){
			alert('删除成功,tableName='+tableName);
			$('#resultList > tbody').empty();
		}); 
	}
	
	function queryDB(tx) {
		$('#resultList > tbody').empty();
	    tx.executeSql('SELECT * FROM DEMO', [], function (tx, results) {
		    var len = results.rows.length;
		    var html = [];
		    for (var i=0; i<len; i++){
		    	var rs = results.rows.item(i);
		        html.push('<tr style="background:#ccc;color:#0066FF;"><td>'+rs.id+'</td><td>'+rs.data+'</td></tr>');
		    }
		    $('#resultList > tbody').append($(html.join('')));
		},errorCB);
	}
	
	
	
	function create(dbName,dbVersion,dbDisplayname,dbSize){
		var db = getDb(dbName,dbVersion,dbDisplayname,dbSize);
		db.transaction(function(tx){
				tx.executeSql('DROP TABLE IF EXISTS DEMO');
				tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
				tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
				tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
				tx.executeSql('INSERT INTO DEMO (id, data) VALUES (3, "Phonegap sqlite测试")');
			}, errorCB, function(){
				alert('创建成功,dbName='+dbName);
				$('#selectBtn').trigger('click');
			});
	}
	
	
	function errorCB(err) {
	    alert("Error processing SQL: "+err.code);
	}
})();

猜你喜欢

转载自czpae86.iteye.com/blog/1772503