在代码片段中执行sqlite语句

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title></title>
    <script src="js/mui.min.js"></script>
    <link href="css/mui.min.css" rel="stylesheet"/>
</head>
<body>
	<script type="text/javascript" charset="utf-8">
	  	mui.plusReady(function(){
			// 打开数据库     
			function openDB(){   //需要提前判断数据库是否打开状态,如果已经是打开状态,再次执行打开代码,有可能会报不知名的错误,而且还会消耗性能。
				if(!plus.sqlite.isOpenDatabase({name: 'first',path: '_doc/test.db'})){//用于判断数据库是否打开,这里是数据库未打开执行的代码,数据库没有打开就先打开数据库
					plus.sqlite.openDatabase({
						name: 'first',
						path: '_doc/test.db',
						success: function(e){
							console.log('openDatabase success!');
						},
						fail: function(e){
							console.log('openDatabase failed: '+JSON.stringify(e));
						}
					});
				}else{//用于判断数据库是否打开,这里是数据已经打开执行的代码,表示数据库已经是打开的状态
					console.log('openDatabase success222!');
				}
			}
			
             // 执行SQL语句
			 
			 // id:你自己起的字段名字
			 // int:数据类型,整型,
			 // primary key:定义这个字段为主键,
			 // auto_increment(AUTOINCREMENT):定义这个字段为自动增长,既如果INSERT时不赋值,则自动加1
			function createTable(){
				plus.sqlite.executeSql({  //INT(11) PRIMARY KEY AUTOINCREMENT   这为主键   设置主键会增加查询速度
						name: 'first',
						sql: 'create table if not exists mytable("id" INT(11) PRIMARY KEY AUTOINCREMENT ,"where" CHAR(110),"location" CHAR(100),"age" INT(11))',//创建数据库表名并设置主键
						success: function(e){
							console.log('executeSql success!');
							// ALTER TABLE table_name ADD PRIMARY KEY()
							// alter table tablename modify id int(11)  auto_increment;
							
						},
						fail: function(e){
							console.log('executeSql failed: '+JSON.stringify(e));
						}
					});
			}
			function insertData(){//在数据表中插入数据
				getLastId(function(id){
					plus.sqlite.executeSql({
						name: 'first',
						sql: "insert into mytable (`id`,`where`,`location`,`age`)values("+id+",'北京','高俊俊','22')",//在数据表中插入数据
						success: function(e){
							console.log('executeSql success!');
						},
						fail: function(e){
							console.log('executeSql failed: '+JSON.stringify(e));
						}
					});
				})
				
			}
			function updateData(){//修改数据库中的某条数据
				plus.sqlite.executeSql({
					name: 'first',
					sql: "update mytable set `where`='北京',`location`='李波',`age`='18' where `id`=6 ",
					success: function(e){
						console.log('executeSql success!');
					},
					fail: function(e){
						console.log('executeSql failed: '+JSON.stringify(e));
					}
				});
			}
			function getLastId(callback){//获取数据库中是否存有数据
				plus.sqlite.selectSql({
					name: 'first',
					sql: 'select * from mytable order by id DESC LIMIT 1',//设置开始id为1//利用callback来实现自增   order by id desc是按id进行降序排列limit 0,1 是只取记录中的第一条.所以这条语句只能得到一条记录如想取前10条则 limit 0,10或limit 10如想取第10至20条则 limit 10,20
					success: function(data){
						if(data!=''){//若数据表中不为空,自增id+1
							callback((data[0]['id']+1));
						}else{//否则从1开始增加
							callback(1);
						}
						
					},
					fail: function(e){
						console.log('selectSql failed: '+JSON.stringify(e));
					}
				});
			}
			function deleteData(){//数据库的删除
				plus.sqlite.executeSql({
					name: 'first',
					sql: "delete from mytable",//删除数据表中的某条数据  若没有where id=6则清空数据中的所有数据
					success: function(e){
						console.log('executeSql success!');
					},
					fail: function(e){
						console.log('executeSql failed: '+JSON.stringify(e));
					}
				});
			}
			// 查询SQL语句
			function selectSQL(){
				plus.sqlite.selectSql({
					name: 'first',
					sql: 'select * from mytable',//查询数据表中的所有数据
					success: function(data){
						console.log('selectSql success: ');
						for(var i in data){
							console.log(JSON.stringify(data[i]));
						}
					},
					fail: function(e){
						console.log('selectSql failed: '+JSON.stringify(e));
					}
				});
			}

			function closeDB(){//关闭数据库  完成数据库操作后,必须关闭数据库,否则可能会导致系统资源无法释放。
				plus.sqlite.closeDatabase({name: 'first'});
				console.log('已关闭数据库');
			}
			
			
			//另外还有执行事务函数   一般涉及交易问题才会使用
			// 执行事务
			// function transactionDB(){
			// 	plus.sqlite.transaction({
			// 		name: 'first',
			// 		operation: 'begin',
			// 		success: function(e){
			// 			console.log('transaction success!');
			// 		},
			// 		fail: function(e){
			// 			console.log('transaction failed: '+JSON.stringify(e));
			// 		}
			// 	});
			// }
		
			// openDB();//打开本地数据库
			// createTable();//创建数据库的表名执行增删改操作
			// insertData();//在数据表中插入一条数据
			// updateData();//修改数据表中的某一条数据
			// deleteData();//删除数据表中的某一条数据 表名后面若为空  则是清空表中所有数据
			// alert(getLastId())
			// selectSQL();//查询数据表中的某一条数据
			closeDB();//关闭数据库
			
		})
	</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值