Sequelize Sqlite 数据库连接和使用
简介
Sequelize 是一个用于 Node.js 的 ORM(对象关系映射)库,可以帮助我们在 Node.js 中操作不同类型的数据库。它支持多种数据库,包括 MySQL、PostgreSQL、SQLite、MSSQL 等。
本文将重点介绍如何使用 Sequelize 连接和操作 SQLite 数据库。SQLite 是一种轻量级的关系型数据库,适用于小型项目和嵌入式设备。
安装
首先,我们需要安装 Sequelize 和 SQLite3 驱动程序:
npm install sequelize sqlite3
安装完成后,我们可以在代码中引入 Sequelize:
const { Sequelize } = require('sequelize');
连接数据库
在使用 Sequelize 操作数据库之前,我们需要先与数据库建立连接。创建 Sequelize 实例时,需要传入数据库的相关配置信息。下面是一个简单的示例:
const sequelize = new Sequelize({
dialect: 'sqlite',
storage: 'path/to/database.sqlite'
});
dialect
参数指定数据库类型,这里选择了 SQLite。storage
参数指定数据库文件的路径和名称。
请根据实际情况修改 storage
路径及名称,确保连接到您的 SQLite 数据库文件。
定义模型
在 Sequelize 中,我们通过定义模型来操作数据库。模型表示了数据库中的一张表,我们可以通过模型对表进行增删改查等操作。
首先,我们创建一个 User 模型,表示用户表:
const User = sequelize.define('User', {
username: {
type: Sequelize.STRING,
allowNull: false
},
age: {
type: Sequelize.INTEGER,
allowNull: false
}
});
在上面的代码中,我们使用 sequelize.define
方法定义了一个名为 User
的模型。该模型对应了一个名为 User
的表。
我们通过传递一个对象给 define
方法来定义表的字段。在这个示例中,我们定义了两个字段:username
和 age
。
type
参数指定了字段的数据类型,这里分别是 Sequelize.STRING
和 Sequelize.INTEGER
。
allowNull
参数指定了字段是否允许为空。
同步模型
在我们开始使用模型之前,需要先同步模型和数据库。这将在数据库中创建对应的表。
我们可以使用 sequelize.sync()
方法来实现模型与数据库的同步:
sequelize.sync()
.then(() => {
console.log('Models synced successfully.');
})
.catch((error) => {
console.error('Error syncing models:', error);
});
调用 sync()
方法会返回一个 Promise,我们可以通过 .then()
方法和 .catch()
方法分别处理同步成功和同步失败的情况。
创建记录
一旦模型与数据库同步成功,我们就可以通过模型来创建记录。
User.create({ username: 'Alice', age: 20 })
.then((user) => {
console.log('User created:', user);
})
.catch((error) => {
console.error('Error creating user:', error);
});
上述代码会创建一条新的用户记录。我们通过 create()
方法传递一个对象来指定记录的字段和对应的值。
创建成功后,我们可以在 .then()
方法中获取到创建的用户记录,便于后续操作。
查询记录
Sequelize 提供了丰富的方法来查询记录。下面是一些常见的查询示例:
查询所有记录
User.findAll()
.then((users) => {
console.log('All users:', users);
})
.catch((error) => {
console.error('Error querying users:', error);
});
上述代码将查询所有的用户记录,并在 .then()
方法中打印所有的用户数据。
根据条件查询记录
User.findOne({ where: { username: 'Alice' } })
.then((user) => {
console.log('User found:', user);
})
.catch((error) => {
console.error('Error querying user:', error);
});
上述代码将查询用户名为 “Alice” 的用户记录,并在 .then()
方法中打印匹配的用户数据。
更新记录
User.update({ age: 21 }, { where: { username: 'Alice' } })
.then((result) => {
console.log('Updated rows count:', result[0]);
})
.catch((error) => {
console.error('Error updating user:', error);
});
上述代码将更新用户名为 “Alice” 的用户记录的年龄字段为 21。
删除记录
User.destroy({ where: { username: 'Alice' } })
.then((result) => {
console.log('Deleted rows count:', result);
})
.catch((error) => {
console.error('Error deleting user:', error);
});
上述代码将删除用户名为 “Alice” 的用户记录。
总结
本文介绍了如何使用 Sequelize 连接和操作 SQLite 数据库。我们通过定义模型来操作表,并使用一些常用的方法来进行增删改查等操作。
通过学习和使用 Sequelize,我们可以更方便地在 Node.js 环境中操作数据库,提高开发效率。