当前位置: 代码网 > it编程>前端脚本>Node.js > 使用Node操作MySQL的两种方式

使用Node操作MySQL的两种方式

2024年05月26日 Node.js 我要评论
使用 mysql2 库操作 mysqlmysql2 是 mysql 库的升级版,提供了更多特性,并且支持 promise api。以下是使用 mysql2 进行数据库操作的基本步骤:安装和配置创建项目

使用 mysql2 库操作 mysql

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

安装和配置

创建项目目录,初始化 npm,并安装 mysql2:

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

创建 index.js 文件,并配置数据库连接:

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));
});

插入数据

connection.execute('insert into customers (name) values (?)', ['zhang'], (err, results) => {
  if (err) throw err;
  console.log('insert successful');
});

更新数据

connection.execute('update customers set name="li" where name="zhang"', (err) => {
  if (err) throw err;
  console.log('update successful');
});

删除数据

connection.execute('delete from customers where name="li"', (err) => {
  if (err) throw err;
  console.log('delete successful');
});

使用连接池提高性能

连接池可以管理多个数据库连接,提高应用性能和响应速度:

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

(async () => {
  const pool = mysql.createpool({
    host: 'localhost',
    user: 'root',
    password: 'your_password',
    database: 'practice',
    waitforconnections: true, // 如果没有可用连接,等待而不是立即抛出错误
    connectionlimit: 10, // 连接池中最大连接数
    queuelimit: 0 // 最大排队数量,0表示不限制
  });

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

使用 typeorm 框架操作 mysql

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

项目设置

创建并配置新项目:

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

在 data-source.ts 中配置数据库:

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'
});

操作数据库

使用装饰器定义模型(entity):

import { entity, primarygeneratedcolumn, column } from 'typeorm';

@entity()
export class user {
  @primarygeneratedcolumn()
  id: number;

  @column()
  name: string;
}

插入和查询数据

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);
});

优点

使用 orm 框架可以大大简化数据库操作,使代码更加直观和易于维护。同时,typeorm 提供了强大的数据模型管理功能,支持自动创建表、生成 sql 语句等。

到此这篇关于使用node操作mysql的两种方式的文章就介绍到这了,更多相关node操作mysql内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com