在Vue中使用SQLite數(shù)據(jù)庫的基礎(chǔ)應(yīng)用詳解
一、環(huán)境準(zhǔn)備
安裝 Node.js 和 npm:確保已安裝 Node.js 和 npm。
創(chuàng)建 Vue 項(xiàng)目:使用 Vue CLI 創(chuàng)建一個新的 Vue 項(xiàng)目:
vue create vue-sqlite-project
安裝 SQLite 驅(qū)動:在項(xiàng)目中安裝 sqlite3 庫:
npm install sqlite3
二、數(shù)據(jù)庫連接與操作
1. 創(chuàng)建數(shù)據(jù)庫連接
在 Vue 組件中,可以使用 sqlite3 模塊連接 SQLite 數(shù)據(jù)庫:
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 語句創(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
以下是一個完整的 Vue 組件示例,展示如何在組件中實(shí)現(xiàn)對 SQLite 數(shù)據(jù)庫的增刪改查操作:
<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ù)庫的基礎(chǔ)應(yīng)用詳解的文章就介紹到這了,更多相關(guān)Vue使用SQLite數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Antd 里面的select 選擇框聯(lián)動觸發(fā)的問題
這篇文章主要介紹了解決Antd 里面的select 選擇框聯(lián)動觸發(fā)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Vue.js實(shí)現(xiàn)簡單ToDoList 前期準(zhǔn)備(一)
這篇文章主要介紹了Vue.js實(shí)現(xiàn)簡單ToDoList的前期準(zhǔn)備,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
如何通過URL來實(shí)現(xiàn)在Vue中存儲業(yè)務(wù)狀態(tài)實(shí)用技巧
這篇文章主要為大家介紹了如何通過URL來實(shí)現(xiàn)在Vue中存儲業(yè)務(wù)狀態(tài)實(shí)用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
vue中使用swiper,左右箭頭點(diǎn)擊沒有效果問題及解決
這篇文章主要介紹了vue中使用swiper,左右箭頭點(diǎn)擊沒有效果問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
vue3?+?antv/x6實(shí)現(xiàn)流程圖的全過程
隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的應(yīng)用需要實(shí)現(xiàn)流程圖的制作,如工作流程圖、電路圖等,文中通過代碼以及圖文將實(shí)現(xiàn)的過程介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-06-06

