-
1.在manifest.json APP模塊配置中選中SQLite(數(shù)據(jù)庫)
image.png - 2.可根據(jù)官方文檔進(jìn)行簡單封裝 (網(wǎng)址:https://www.html5plus.org/doc/zh_cn/sqlite.html)
新建文件 sqlite.js
/** 數(shù)據(jù)庫是否打開--打開了就返回true,否則返回false
* @param {Object} name 數(shù)據(jù)庫名稱
* @param {Object} path 數(shù)據(jù)庫地址,uniapp推薦以下劃線為開頭
*/
function isOpen(name, path) {
return plus.sqlite.isOpenDatabase({name,path})
}
/** 創(chuàng)建數(shù)據(jù)庫或者打開
* @param {Object} name 數(shù)據(jù)庫名稱
* @param {Object} path 數(shù)據(jù)庫地址,uniapp推薦以下劃線為開頭
*/
function openSqlite(name, path) {
return new Promise((resolve, reject) => {
//這plus.sqlite只在手機(jī)上運(yùn)行
plus.sqlite.openDatabase({
name: name, //數(shù)據(jù)庫名稱
path: path, //數(shù)據(jù)庫地址,uniapp推薦以下劃線為開頭
success(e) {
resolve(e); //成功回調(diào)
},
fail(e) {
reject(e); //失敗回調(diào)
}
})
})
}
//在該數(shù)據(jù)庫里創(chuàng)建表格/添加數(shù)據(jù)
//數(shù)據(jù)庫不能存對象,數(shù)組 需要轉(zhuǎn)json后再存
/** 執(zhí)行sql命令 對數(shù)據(jù)庫 執(zhí)行增刪改等操作的SQL語句
* @param {Object} name 數(shù)據(jù)庫名稱
* @param {Object} sql sql命令
*/
function executeSql(name, sql) {
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: name,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
/** 執(zhí)行查詢的SQL語句
* @param {Object} name 數(shù)據(jù)庫名稱
* @param {Object} sql sql命令
*/
function selectSql(name, sql) {
if (name !== undefined) {
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: name,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => {
reject("錯誤查詢")
});
}
}
/** 關(guān)閉數(shù)據(jù)庫
* @param {Object} name 數(shù)據(jù)庫名稱
*/
function closeSQL(name) {
return new Promise((resolve, reject) => {
plus.sqlite.closeDatabase({
name: name,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
/**
* 執(zhí)行事務(wù)
* @param {Object} name 數(shù)據(jù)庫名稱
* @param {Object} operationc begin(開始事務(wù))、commit(提交)、rollback(回滾)
*/
function transactionDB(name,operationc) {
return new Promise((resolve, reject) => {
plus.sqlite.transaction({
name: name,
operation: operation,
success: function(e){
resolve(operation,'成功!')
},
fail: function(e){
console.log('transaction failed: '+JSON.stringify(e));
reject(operation,'失敗!')
}
});
})
}
export default {
isOpen,
openSqlite,
selectSql,
executeSql,
closeSQL,
transactionDB
}
- 3.常用SQL語句
//新建表 account_tb
create table if not exists account_tb ( 'id' integer primary key autoincrement,'name' varchar(255), 'gender' varchar(255), 'deptId' varchar(255));
//插入數(shù)據(jù)
insert into account_tb values (null,'tyy','女');
//修改數(shù)據(jù)
update account_tb set name= '唐園園' where id=1;
//刪除數(shù)據(jù)
delete from account_tb where id=1;
//數(shù)據(jù)查詢并分頁(根據(jù)id 排序,搜索條件 gender)
`select * from account_tb where gender='${gender}' order by 'id' asc limit ${pageSize*(pageNumber - 1)},${pageSize}`;
//模糊查詢like % %
`select * from account_tb where name like ' %${gender}%' `;
//連表查詢(left/right/inner join 左/右/內(nèi) 連接)
`select * from account_tb inner join dept_tb as wd on account_tb.deptId = wd.id`;
//獲取總數(shù)并去重 (distinct 去重)
select distinct count(*) as rowCount from account_tb;
