Sequelize Sqlite 数据库连接和使用

Sequelize Sqlite 数据库连接和使用

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 方法来定义表的字段。在这个示例中,我们定义了两个字段:usernameage

type 参数指定了字段的数据类型,这里分别是 Sequelize.STRINGSequelize.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 环境中操作数据库,提高开发效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程