<!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>
在代码片段中执行sqlite语句
最新推荐文章于 2025-03-19 16:18:06 发布