`
czpae86
  • 浏览: 712440 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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);
	}
})();

 

  • 大小: 54 KB
  • 大小: 53.3 KB
  • 大小: 54.4 KB
2
0
分享到:
评论
5 楼 gcx123456789 2014-12-10  
楼主,请问一下,sqlite文件怎么一起打包进app
4 楼 bqlin1987 2014-03-13  
gxz1989611 写道
请问博主,这个sqlite是不是集成在移动终端的浏览器上的吧?如果这样,升级手机app会不会造成这个sqlite数据丢失?

這個要看你創建DB時的那個條件,如createDatabaseIfNotExist=true,是不會弄丟原來的DB
3 楼 gxz1989611 2014-01-02  
请问博主,这个sqlite是不是集成在移动终端的浏览器上的吧?如果这样,升级手机app会不会造成这个sqlite数据丢失?
2 楼 lele140 2013-05-06  
功能很好,我好奇的是 创建的 testDb 存放目录是哪里?我是在PC机器上 chrome测试的。
1 楼 bqlin1987 2013-01-30  
Good!

相关推荐

Global site tag (gtag.js) - Google Analytics