在Vue中使用SQLite數(shù)據(jù)庫(kù)的基礎(chǔ)應(yīng)用詳解
一、環(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)文章
Vue中的路由跳轉(zhuǎn)及傳參的多種方法小結(jié)
這篇文章主要介紹了Vue中的路由跳轉(zhuǎn)及傳參的多種方法小結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11Vue使用axios post方式將表單中的數(shù)據(jù)以json格式提交給后端接收操作實(shí)例
這篇文章主要介紹了Vue使用axios post方式將表單中的數(shù)據(jù)以json格式提交給后端接收操作,結(jié)合實(shí)例形式分析了vue基于axios庫(kù)post傳送表單json格式數(shù)據(jù)相關(guān)操作實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2023-06-06vue-devtools 打開(kāi)源碼位置實(shí)現(xiàn)過(guò)程
這篇文章主要為大家介紹了vue-devtools 打開(kāi)源碼位置實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09vue實(shí)現(xiàn)nav導(dǎo)航欄的方法
這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目nav導(dǎo)航欄的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Vue 子組件使用 this.$parent 無(wú)法訪問(wèn)到父組件數(shù)據(jù)和方法(解決思路)
這篇文章主要介紹了Vue 子組件使用 this.$parent 無(wú)法訪問(wèn)到父組件數(shù)據(jù)和方法,解決思路也很簡(jiǎn)單,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07Vue實(shí)現(xiàn)省市區(qū)級(jí)聯(lián)下拉選擇框
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)省市區(qū)級(jí)聯(lián)下拉選擇框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03vue router 跳轉(zhuǎn)后回到頂部的實(shí)例
今天小編就為大家分享一篇vue router 跳轉(zhuǎn)后回到頂部的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08vue 實(shí)現(xiàn)可拖曳的樹狀結(jié)構(gòu)圖
這篇文章主要介紹了vue 實(shí)現(xiàn)可拖曳的樹狀結(jié)構(gòu)圖,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04