欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Vue中使用SQLite數(shù)據(jù)庫(kù)的基礎(chǔ)應(yīng)用詳解

 更新時(shí)間:2025年02月13日 15:38:37   作者:像素檢測(cè)儀  
這篇文章主要為大家詳細(xì)介紹了在Vue中使用SQLite數(shù)據(jù)庫(kù)的基礎(chǔ)應(yīng)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、環(huán)境準(zhǔn)備

安裝 Node.js 和 npm:確保已安裝 Node.js 和 npm。

創(chuàng)建 Vue 項(xiàng)目:使用 Vue CLI 創(chuàng)建一個(gè)新的 Vue 項(xiàng)目:

vue create vue-sqlite-project

安裝 SQLite 驅(qū)動(dòng):在項(xiàng)目中安裝 sqlite3 庫(kù):

npm install sqlite3

二、數(shù)據(jù)庫(kù)連接與操作

1. 創(chuàng)建數(shù)據(jù)庫(kù)連接

在 Vue 組件中,可以使用 sqlite3 模塊連接 SQLite 數(shù)據(jù)庫(kù):

import sqlite3 from 'sqlite3';

const db = new sqlite3.Database('./database.db', (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Connected to the SQLite database.');
});

2. 創(chuàng)建表

使用 SQL 語(yǔ)句創(chuàng)建表:

db.run(`CREATE TABLE IF NOT EXISTS users (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  username TEXT NOT NULL,
  email TEXT NOT NULL
)`, (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('Table created.');
});

3. 插入數(shù)據(jù)

插入數(shù)據(jù)到表中:

const user = { username: 'Alice', email: 'alice@example.com' };
db.run(`INSERT INTO users (username, email) VALUES (?, ?)`, [user.username, user.email], (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('A row has been inserted.');
});

4. 查詢數(shù)據(jù)

查詢表中的數(shù)據(jù):

db.all(`SELECT * FROM users`, [], (err, rows) => {
  if (err) {
    console.error(err.message);
  }
  rows.forEach((row) => {
    console.log(row);
  });
});

5. 更新數(shù)據(jù)

更新表中的數(shù)據(jù):

db.run(`UPDATE users SET email = ? WHERE username = ?`, ['newemail@example.com', 'Alice'], (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('A row has been updated.');
});

6. 刪除數(shù)據(jù)

刪除表中的數(shù)據(jù):

db.run(`DELETE FROM users WHERE username = ?`, ['Alice'], (err) => {
  if (err) {
    console.error(err.message);
  }
  console.log('A row has been deleted.');
});

三、在 Vue 組件中使用 SQLite

以下是一個(gè)完整的 Vue 組件示例,展示如何在組件中實(shí)現(xiàn)對(duì) SQLite 數(shù)據(jù)庫(kù)的增刪改查操作:

<template>
  <div>
    <h2>User Management</h2>
    <form @submit.prevent="addUser">
      <input v-model="newUser.username" placeholder="用戶名" />
      <input v-model="newUser.email" placeholder="郵箱" />
      <button type="submit">添加用戶</button>
    </form>
    <ul>
      <li v-for="user in users" :key="user.id">
        {{ user.username }} - {{ user.email }}
        <button @click="deleteUser(user.id)">刪除用戶</button>
      </li>
    </ul>
  </div>
</template>

<script>
import sqlite3 from 'sqlite3';

export default {
  data() {
    return {
      newUser: { username: '', email: '' },
      users: []
    };
  },
  methods: {
    async initDatabase() {
      const db = new sqlite3.Database('./database.db', (err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('Connected to the SQLite database.');
      });

      // Create table
      db.run(`CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        username TEXT NOT NULL,
        email TEXT NOT NULL
      )`, (err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('Table created.');
      });

      // Fetch users
      this.fetchUsers(db);

      // Close database connection
      db.close();
    },
    fetchUsers(db) {
      db.all(`SELECT * FROM users`, [], (err, rows) => {
        if (err) {
          console.error(err.message);
        }
        this.users = rows;
      });
    },
    addUser() {
      const db = new sqlite3.Database('./database.db');
      db.run(`INSERT INTO users (username, email) VALUES (?, ?)`, [this.newUser.username, this.newUser.email], (err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('User added.');
        this.fetchUsers(db);
      });
      db.close();
    },
    deleteUser(id) {
      const db = new sqlite3.Database('./database.db');
      db.run(`DELETE FROM users WHERE id = ?`, [id], (err) => {
        if (err) {
          console.error(err.message);
        }
        console.log('User deleted.');
        this.fetchUsers(db);
      });
      db.close();
    }
  },
  mounted() {
    this.initDatabase();
  }
};
</script>

到此這篇關(guān)于在Vue中使用SQLite數(shù)據(jù)庫(kù)的基礎(chǔ)應(yīng)用詳解的文章就介紹到這了,更多相關(guān)Vue使用SQLite數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論