翼度科技»论坛 编程开发 JavaScript 查看内容

使用Node操作MySQL的两种方式

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
使用 mysql2 库操作 MySQL

mysql2 是 mysql 库的升级版,提供了更多特性,并且支持 Promise API。以下是使用 mysql2 进行数据库操作的基本步骤:

安装和配置

创建项目目录,初始化 npm,并安装 mysql2:
  1. mkdir myproject
  2. cd myproject
  3. npm init -y
  4. npm install --save mysql2
复制代码
创建 index.js 文件,并配置数据库连接:
  1. const mysql = require('mysql2');

  2. const connection = mysql.createConnection({
  3.   host: 'localhost',
  4.   port: 3306,
  5.   user: 'root',
  6.   password: 'your_password',
  7.   database: 'practice'
  8. });
复制代码
基本操作


查询操作
  1. connection.query('SELECT * FROM customers', (err, results, fields) => {
  2.   if (err) throw err;
  3.   console.log(results);
  4.   console.log(fields.map(item => item.name));
  5. });
复制代码
插入数据
  1. connection.execute('INSERT INTO customers (name) VALUES (?)', ['Zhang'], (err, results) => {
  2.   if (err) throw err;
  3.   console.log('Insert successful');
  4. });
复制代码
更新数据
  1. connection.execute('UPDATE customers SET name="Li" WHERE name="Zhang"', (err) => {
  2.   if (err) throw err;
  3.   console.log('Update successful');
  4. });
复制代码
删除数据
  1. connection.execute('DELETE FROM customers WHERE name="Li"', (err) => {
  2.   if (err) throw err;
  3.   console.log('Delete successful');
  4. });
复制代码
使用连接池提高性能

连接池可以管理多个数据库连接,提高应用性能和响应速度:
  1. const mysql = require('mysql2/promise');

  2. (async () => {
  3.   const pool = mysql.createPool({
  4.     host: 'localhost',
  5.     user: 'root',
  6.     password: 'your_password',
  7.     database: 'practice',
  8.     waitForConnections: true, // 如果没有可用连接,等待而不是立即抛出错误
  9.     connectionLimit: 10, // 连接池中最大连接数
  10.     queueLimit: 0 // 最大排队数量,0表示不限制
  11.   });

  12.   const [results] = await pool.query('SELECT * FROM customers');
  13.   console.log(results);
  14. })();
复制代码
使用 TypeORM 框架操作 MySQL

TypeORM 是一个基于 TypeScript 的 ORM (对象关系映射) 框架,它可以让开发者通过操作对象而不是 SQL 语句来处理数据库。

项目设置

创建并配置新项目:
  1. npx typeorm@latest init --name typeorm-mysql-test --database mysql
复制代码
在 data-source.ts 中配置数据库:
  1. import { DataSource } from 'typeorm';
  2. import { User } from './entity/User';

  3. export const AppDataSource = new DataSource({
  4.   type: 'mysql',
  5.   host: 'localhost',
  6.   port: 3306,
  7.   username: 'root',
  8.   password: 'your_password',
  9.   database: 'practice',
  10.   synchronize: true,
  11.   entities: [User],
  12.   connectorPackage: 'mysql2'
  13. });
复制代码
操作数据库

使用装饰器定义模型(Entity):
  1. import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

  2. @Entity()
  3. export class User {
  4.   @PrimaryGeneratedColumn()
  5.   id: number;

  6.   @Column()
  7.   name: string;
  8. }
复制代码
插入和查询数据
  1. import { AppDataSource } from './data-source';
  2. import { User } from './entity/User';

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

  7.   const users = await AppDataSource.manager.find(User);
  8.   console.log(users);
  9. });
复制代码
优点

使用 ORM 框架可以大大简化数据库操作,使代码更加直观和易于维护。同时,TypeORM 提供了强大的数据模型管理功能,支持自动创建表、生成 SQL 语句等。
到此这篇关于使用Node操作MySQL的两种方式的文章就介绍到这了,更多相关Node操作MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/javascript/320993ycg.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具