yoyosqlite
v2.0.0
Published
一个链式连接sqlite数据库的扩展包
Readme
YoyoSqlite 链式操作库 (采用Sqlite3)
前言
对于sql不熟悉的人不是很友好,而且复用并不是很方便,所以封装了这个链式方法库(可能有些地方写得不是很好)!但是我会尽力去完善它!
我是Yoyo感谢您的浏览!!!!
引入
import YoyoSqlite from 'yoyosqlite';连接sqlite数据库
YoyoSqlite.createDatabase('./test.db');添加数据
const result =await YoyoSqlite.table('user')//需要操作的完整表名
.field(['name','account','describe'])//设置字段
.insert(['我是名称',123456,'我是描述']);//添加一条数据
//你也可以添加多条(比如这样)
.insert([
['我是名称1',123456,'我是描述1'],
['我是名称2',123456,'我是描述2'],
]);
//或许你想这样做(这样直接指定字段)
const result =await YoyoSqlite.table('user')//需要操作的完整表名
.insert({name:'我是名称呀',account:9877,describe:'说得是这样?'});//添加一条数据
//任然,你也可以添加多条(比如这样)
.insert([
{name:'我是名称呀',account:9877,describe:'说得是这样?'},
{name:'我是名称呀',account:9877,describe:'说得是这样?'}
]);删除数据
const result =await YoyoSqlite.table('user')//需要操作的完整表名
.where('id',1)//获取你可以添加一些条件 (id = 1)
.where('name','<>','yoyo')//获取你可以添加一些条件 (name <> 'yoyo')
.where([
['name','like','%yoyo%'],
['ps','in',[1,2,3,4]],
])//获取你可以添加一些条件 (name like %yoyo% AND ps in (1,2,3,4))
.limit(5)//获取还可以限制删除的条数
.delete();更新数据(修改)
const result =await YoyoSqlite.table('user')//需要操作的完整表名
.where('id',1)//获取你可以添加一些条件 (id = 1)
.update({
rmb:99999,
name:'我被修改了'
})
.update(['name',`'被修改了'`]);
// 注意这个是原始数据 字符串需要自行增加 单引号
.update([
['name', "'被修改了'"],
['rmb', 'rmb+1']
]);查询数据
!!!!!!!!!!!!!查询返回值有修改哦!!!!!看我
result.data;//查询到的数据
result.field;//字段
result.count;//查询到的数据总数量
const result =await YoyoSqlite.table('user')//需要操作的完整表名
.where('id',1)//获取你可以添加一些条件 (id = 1)
.find();//查询一条数据
whereOr() //或者
// 子查询
where('id',()=>{
return YoyoSqlite.table('qd').whereOr('a2', '=', 222);
});
//或者 (子查询 IN)
.whereIn('id',()=>{
return YoyoSqlite.table('qd').whereOr('a2', '=', 222).whereOr('a2', '=', 222);
});
//或者
.select();//查询多条
//你任然可以用
.limit(5)
//or
.limit(0,18)
//去限制它
//我们看看排序
.order('id','DESC')//设置降序
.order({
id:'ASC',
rmb:'DESC'
})
//你也可以单独设置字段显示默认是 *
.field(['id','name'])//只要两个字段
.field('name AS 名称')//或者用来取名也可以
.group('id')//分组查询
.group(['id','name'])//分组查询
.having('count(*) > 1')//分组条件(原始拼接)
//多表联查也是支持的
const result = await YoyoSqlite.table('user')//需要操作的完整表名
.join('user2 u2','user.id = u2.id')//你可以这样的当然它还有(leftJoin,rightJoin,fullJoin)他们分别代表(INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN)
分页查询
const result = await YoyoSqlite.table('user').where('id', '>', 1).order('id','DESC').pages(1,2);
console.log(result);事务操作
async function test() {
const result = await YoyoSqlite.beginTransaction(async (conn) => {
await conn.table('user').where('id', '=', 1).delete();
await conn.table('user').where('id', '=', 1).update({ name: '张三' });
});
// result 是true就是成功提交了 是false就是回滚了
}
// 启动事务(都是异步的你可以用 await 等待它或者 在 then 回调里面执行)
原始的查询和执行
//如果还是没有您需要的你可以自己编写sql使用以下的方法执行
await YoyoSqlite.query(sql);//执行并返回
await YoyoSqlite.query(sql,bind);//执行并返回 (它有一个可选参数绑定就是预处理方式)
await YoyoSqlite.execute(sql);
await YoyoSqlite.execute(sql,bind);//使用方式和上面雷同