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

使用Node操作MySQL的兩種方式

 更新時間:2024年05月13日 08:31:18   作者:云牧  
本文將介紹如何在?Node.js?應(yīng)用中使用?mysql2?和?TypeORM?兩種方式操作?MySQL?數(shù)據(jù)庫,文中通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)有一定的幫助,需要的朋友可以參考下

使用 mysql2 庫操作 MySQL

mysql2 是 mysql 庫的升級版,提供了更多特性,并且支持 Promise API。以下是使用 mysql2 進行數(shù)據(jù)庫操作的基本步驟:

安裝和配置

創(chuàng)建項目目錄,初始化 npm,并安裝 mysql2:

mkdir myproject
cd myproject
npm init -y
npm install --save mysql2

創(chuàng)建 index.js 文件,并配置數(shù)據(jù)庫連接:

const mysql = require('mysql2');

const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'your_password',
  database: 'practice'
});

基本操作

查詢操作

connection.query('SELECT * FROM customers', (err, results, fields) => {
  if (err) throw err;
  console.log(results);
  console.log(fields.map(item => item.name));
});

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

connection.execute('INSERT INTO customers (name) VALUES (?)', ['Zhang'], (err, results) => {
  if (err) throw err;
  console.log('Insert successful');
});

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

connection.execute('UPDATE customers SET name="Li" WHERE name="Zhang"', (err) => {
  if (err) throw err;
  console.log('Update successful');
});

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

connection.execute('DELETE FROM customers WHERE name="Li"', (err) => {
  if (err) throw err;
  console.log('Delete successful');
});

使用連接池提高性能

連接池可以管理多個數(shù)據(jù)庫連接,提高應(yīng)用性能和響應(yīng)速度:

const mysql = require('mysql2/promise');

(async () => {
  const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',
    password: 'your_password',
    database: 'practice',
    waitForConnections: true, // 如果沒有可用連接,等待而不是立即拋出錯誤
    connectionLimit: 10, // 連接池中最大連接數(shù)
    queueLimit: 0 // 最大排隊數(shù)量,0表示不限制
  });

  const [results] = await pool.query('SELECT * FROM customers');
  console.log(results);
})();

使用 TypeORM 框架操作 MySQL

TypeORM 是一個基于 TypeScript 的 ORM (對象關(guān)系映射) 框架,它可以讓開發(fā)者通過操作對象而不是 SQL 語句來處理數(shù)據(jù)庫。

項目設(shè)置

創(chuàng)建并配置新項目:

npx typeorm@latest init --name typeorm-mysql-test --database mysql

在 data-source.ts 中配置數(shù)據(jù)庫:

import { DataSource } from 'typeorm';
import { User } from './entity/User';

export const AppDataSource = new DataSource({
  type: 'mysql',
  host: 'localhost',
  port: 3306,
  username: 'root',
  password: 'your_password',
  database: 'practice',
  synchronize: true,
  entities: [User],
  connectorPackage: 'mysql2'
});

操作數(shù)據(jù)庫

使用裝飾器定義模型(Entity):

import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;
}

插入和查詢數(shù)據(jù)

import { AppDataSource } from './data-source';
import { User } from './entity/User';

AppDataSource.initialize().then(async () => {
  const user = new User();
  user.name = 'Wang';
  await AppDataSource.manager.save(user);

  const users = await AppDataSource.manager.find(User);
  console.log(users);
});

優(yōu)點

使用 ORM 框架可以大大簡化數(shù)據(jù)庫操作,使代碼更加直觀和易于維護。同時,TypeORM 提供了強大的數(shù)據(jù)模型管理功能,支持自動創(chuàng)建表、生成 SQL 語句等。

到此這篇關(guān)于使用Node操作MySQL的兩種方式的文章就介紹到這了,更多相關(guān)Node操作MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pm2發(fā)布node配置文件ecosystem.json詳解

    pm2發(fā)布node配置文件ecosystem.json詳解

    這篇文章主要介紹了pm2發(fā)布node配置文件ecosystem.json詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • vscode無法運行npm命令的問題解決(cmd可行)

    vscode無法運行npm命令的問題解決(cmd可行)

    本文主要介紹了vscode無法運行npm命令的問題解決(cmd可行),VSCode無法調(diào)用npm可能是因為環(huán)境路徑配置錯誤,下面就來具體介紹一下原因及解決方法,感興趣的可以了解一下
    2024-04-04
  • Nodejs使用winston進行日志記錄詳解

    Nodejs使用winston進行日志記錄詳解

    在生產(chǎn)環(huán)境中,更常見的做法是使用專門的日志記錄庫,如winston、log4js等,來實現(xiàn)更靈活和可配置的日志記錄功能,本篇文章將介紹的是winston的強大的日志記錄功能,快跟隨小編一起學(xué)習(xí)一下吧
    2024-01-01
  • node.js中的path.resolve方法使用說明

    node.js中的path.resolve方法使用說明

    這篇文章主要介紹了node.js中的path.resolve方法使用說明,本文介紹了path.resolve的方法說明、接收參數(shù)、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js打包管理工具NPM用法

    Node.js打包管理工具NPM用法

    這篇文章介紹了Node.js打包管理工具NPM的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Centos7 中安裝 Node.js v4.4.4

    Centos7 中安裝 Node.js v4.4.4

    我一直對學(xué)習(xí)Node.js比較感興趣。這是一個Java平臺的服務(wù)器端編程 ,它允許開發(fā)人員在服務(wù)器編寫Java代碼,并且有許多CentOS的用戶正努力學(xué)習(xí)這個語言的開發(fā)環(huán)境。這正是我想做這個教程的目的。
    2016-11-11
  • NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法

    NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法

    這篇文章主要介紹了NodeJS 將文件夾按照存放路徑變成一個對應(yīng)的JSON的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Nodejs使用archiver-zip-encrypted庫加密壓縮文件時報錯(解決方案)

    Nodejs使用archiver-zip-encrypted庫加密壓縮文件時報錯(解決方案)

    這篇文章主要介紹了Nodejs使用archiver-zip-encrypted庫加密壓縮文件時報錯,朋友朋友在測試過程中都出現(xiàn)過異常,下面小編把問題過程分析腳本之家平臺,需要的朋友可以參考下
    2019-11-11
  • nodejs log4js 使用詳解

    nodejs log4js 使用詳解

    這篇文章主要介紹了nodejs log4js 使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • yarn?install命令報錯warning?package-lock.json?found解決辦法

    yarn?install命令報錯warning?package-lock.json?found解決辦法

    這篇文章主要給大家介紹了關(guān)于yarn?install命令報錯warning?package-lock.json?found的解決辦法,文中通過圖文將解決的辦法介紹的非常詳細,還分享了更多yarn install遇到的報錯及解決方案,需要的朋友可以參考下
    2024-02-02

最新評論