Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs

Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs

WBOY
WBOYke hadapan
2023-06-01 12:40:061317semak imbas

Tukar hasil pertanyaan kepada objek atau tatasusunan

Dalam pembangunan sebenar, beberapa hasil pertanyaan sebenarnya harus dimasukkan ke dalam objek

JSON_OBJECT: () is The form of key-value

SELECT products.id as id, products.title as title, products.price as price, products.score as score,
	JSON_OBJECT('id', brand.id, 'name', brand.name, 'rank', brand.phoneRank, 'website', brand.website) as brand
FROM products LEFT JOIN brand ON products.brand_id = brand.id;

Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs

Dalam perhubungan banyak-ke-banyak, perkara yang ingin kita tanyakan ialah tatasusunan:

  • Untuk contoh, maklumat berbilang kursus pelajar harus diletakkan dalam tatasusunan; perlu menggunakan

    JSON_ARRAYAGG
  • dan
  • JSON_OBJECT

    bersama-sama; >Pasang mysql2:

    SELECT stu.id, stu.name, stu.age,
    	JSON_ARRAYAGG(JSON_OBJECT('id', cs.id, 'name', cs.name)) as courses
    FROM students stu
    LEFT JOIN students_select_courses ssc ON stu.id = ssc.student_id
    LEFT JOIN courses cs ON ssc.course_id = cs.id
    GROUP BY stu.id;
  • Penggunaan mudah:
  • npm install mysql2

    Jika kita ingin menghentikan perkhidmatan selepas mendapat data, kita boleh menulis dalam fungsi panggil balik:

    const mysql = require('mysql2');
    
    // 1.创建数据库连接
    const connection = mysql.createConnection({
      host: 'localhost',
      port: 3306,
      database: 'coderhub',
      user: 'root',
      password: 'Coderwhy888.'
    });
    
    // 2.执行SQL语句
    const statement = `
      SELECT * FROM products WHERE price > 6000;
    `
    connection.query(statement, (err, results, fields) => {
      console.log(results);
    });
    Kod penuh :
    connection.end()
    Penyata Disediakan (penyata yang disediakan)

  • Tingkatkan prestasi: hantar modul pernyataan yang dicipta ke MySQL, dan kemudian MySQL menyusun (menghuraikan, mengoptimumkan, Menukar) modul pernyataan dan menyimpan
tetapi tidak melaksanakannya Kemudian, apabila kami benar-benar melaksanakannya, kami akan memberikan parameter sebenar kepada

sebelum ia dilaksanakan beberapa kali, ia hanya akan disusun sekali, jadi prestasinya lebih tinggi ; >Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs Penekanan: Jika penyataan dilaksanakan semula, ia akan diperoleh daripada Cache LRU (Paling Kurang Digunakan), tanpa mengambil masa untuk menyusun penyataan untuk meningkatkan prestasi.

connection.query(statement, (err, results, fields) => {
  console.log(results);
  connection.end();
});

Kolam Sambungan

Kami telah membuat sambungan lebih awal, tetapi jika kami mempunyai berbilang permintaan, sambungan itu mungkin akan diduduki, maka kami Adakah saya perlu membuat sambungan baharu setiap kali permintaan dibuat?

Malah, mysql2 memberikan kami kumpulan sambungan;

Kolam sambungan boleh membuat sambungan secara automatik apabila diperlukan akan dimusnahkan, tetapi akan diletakkan dalam kumpulan sambungan dan boleh digunakan kemudian; >


?Tentukan sama ada sambungan berjaya

// 2.执行SQL语句: 使用 ?来对参数进行占位
const statement = `
  SELECT * FROM products WHERE price > ? AND score > ?;
`
connection.execute(statement, [6000, 7], (err, results) => {
  console.log(results);
});

Penggunaan pangkalan data yang mudah

rreee

Kaedah Janji
    const mysql = require('mysql2');
    
    // 1.创建连接池
    const connections = mysql.createPool({
      host: 'localhost',
      port: 3306,
      database: 'coderhub',
      user: 'root',
      password: 'Coderwhy888.',
      connectionLimit: 10
    });
    
    connections.getConnection((err, conn) => {
      conn.connect((err) => {
        if(err){
          console.log('连接失败:',err)
        } else {
          console.log('数据库连接成功~')
        }
      })
    })
  • sequelize

  • Pemetaan Hubungan Objek (ORM)
  • : Ia adalah penyelesaian pengaturcaraan:

  • Dari segi kesan, Ia memberikan kesan yang boleh digunakan dalam bahasa pengaturcaraan,

    menggunakan pangkalan data objek maya

    ;

ORM dalam Node yang biasa kita gunakan sequelize;

Sequelize ialah ORM berasaskan Node.js untuk Postgres, MySQL, MariaDB, SQLite dan Microsoft SQL Server

Ia menyokong banyak ciri; >

Jika kita ingin menggunakan Sequelize dengan MySQL, maka kita perlu memasang dua perkara dahulu:

    mysql2: sequelize apabila mengendalikan mysql Mysql2 digunakan;
  • sequelize: Gunakannya untuk memetakan objek ke jadual; >

    Langkah 1: Buat objek Sequelize dan nyatakan pangkalan data, nama pengguna, kata laluan, jenis pangkalan data, alamat hos, dll.;
Langkah 2: Uji sambungan sama ada ia berjaya;
const mysql = require('mysql2');

// 1.创建连接池
const connections = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'coderhub',
  user: 'root',
  password: 'Coderwhy888.',
  connectionLimit: 10
});

// 2.使用连接池
const statement = `
  SELECT * FROM products WHERE price > ? AND score > ?;
`
connections.execute(statement, [6000, 7], (err, results) => {
  console.log(results);
});

Operasi meja tunggal Sequelize

const mysql = require('mysql2');

// 1.创建连接池
const connections = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'coderhub',
  user: 'root',
  password: 'Coderwhy888.',
  connectionLimit: 10
});

// 2.使用连接池
const statement = `
  SELECT * FROM products WHERE price > ? AND score > ?;
`
connections.promise().execute(statement, [6000, 7]).then(([results,fields]) => {
  console.log(results);
}).catch(err => {
  console.log(err);
});
    Operasi satu-ke-banyak Sequelize
  • npm install sequelize mysql2

    Operasi banyak-ke-banyak Sequelize

    const { Sequelize } = require('sequelize');
    
    const sequelize = new Sequelize('coderhub', 'root', 'Coderwhy888.', {
      host: 'localhost',
      dialect: 'mysql'//连接的数据库类型:mysql,mongoose
    });
    
    sequelize.authenticate().then(() => {
      console.log("连接数据库成功~");
    }).catch(err => {
      console.log("连接数据库失败~", err);
    });

Atas ialah kandungan terperinci Bagaimana untuk menyambung koa2 ke mysql dalam Nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam