📜  CoffeeScript-SQLite(1)

📅  最后修改于: 2023-12-03 14:59:58.471000             🧑  作者: Mango

CoffeeScript-SQLite介绍

CoffeeScript-SQLite是一个使用CoffeeScript编写的轻量级SQLite数据库ORM(对象关系映射)工具。它允许程序员使用面向对象的方式来管理SQLite数据库,并提供了简单易用的接口和强大的功能。

安装

你可以通过npm来安装CoffeeScript-SQLite。

$ npm install coffeescript-sqlite
简单例子

下面是一个使用CoffeeScript-SQLite进行数据库操作的例子。

sqlite = require 'coffeescript-sqlite'

class User extends sqlite.Model
  @tableName: 'users'

  @property 'name', sqlite.VARCHAR
  @property 'age', sqlite.INTEGER

User.setup()
User.createTable()

users = [
  {name: 'Tom', age: 20},
  {name: 'Jerry', age: 18},
]

for user in users
  User.insert user, (result) ->
    console.log result.affectedRows

User.where name: 'Tom', (result) ->
  console.log result.rows

上面的例子定义了一个名为User的ORM类,用来管理名为users的数据表。该数据表有两个字段:name和age,分别对应字符串和整数类型。User类继承了sqlite.Model,从而获得了一些内置的数据库操作函数。

在程序运行时,首先需要调用User.setup()函数来连接数据库,并设置数据库路径。接着,调用User.createTable()函数来创建数据表。

然后,将两个用户信息插入到数据表中,使用的是User.insert()函数。注意该函数是异步的,所以需要提供一个回调函数。

最后,使用User.where()函数查询数据表中符合条件的记录。查询结果也是异步返回,需要提供回调函数。

API

下面是CoffeeScript-SQLite的主要API。更详细的使用方法请查看官方文档。

sqlite.Model

sqlite.Model类是CoffeeScript-SQLite的核心类,用于管理数据表。

sqlite.Model.tableName

定义数据表名。

class User extends sqlite.Model
  @tableName: 'users'

sqlite.Model.property(name, type, options)

定义数据表字段。

class User extends sqlite.Model
  @property 'name', sqlite.VARCHAR, defaultValue: ''
  @property 'age', sqlite.INTEGER, readOnly: true
  @property 'desc', sqlite.TEXT, notNull: true

sqlite.Model.setup(options)

连接数据库。

sqlite.Model.setup
  database: './data.db'
  readonly: false

sqlite.Model.createTable()

创建数据表。

User.createTable()

sqlite.Model.insert(values, callback)

插入数据。

User.insert {name: 'Tom', age: 20}, (result) ->
  console.log result.affectedRows

sqlite.Model.where(conditions, callback)

查询数据。

User.where name: 'Tom', (result) ->
  console.log result.rows

sqlite.Model.update(conditions, values, callback)

更新数据。

User.update {age: 21}, {name: 'Tom'}, (result) ->
  console.log result.affectedRows

sqlite.Model.delete(conditions, callback)

删除数据。

User.delete {name: 'Tom'}, (result) ->
  console.log result.affectedRows
sqlite.VARCHAR

文本类型。

@property 'name', sqlite.VARCHAR
sqlite.INTEGER

整数类型。

@property 'age', sqlite.INTEGER
sqlite.REAL

浮点数类型。

@property 'price', sqlite.REAL
sqlite.BOOLEAN

布尔类型。

@property 'isPublished', sqlite.BOOLEAN
sqlite.TEXT

大文本类型。

@property 'desc', sqlite.TEXT
结束语

CoffeeScript-SQLite是一个简单易用的SQLite ORM工具,适用于小型项目和个人使用。它提供了丰富的API和很好的性能,能够帮助程序员高效地使用SQLite数据库。更多细节请查看官方文档