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;
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_ARRAYAGGbersama-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;
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);
});
connection.end()
sebelum ia dilaksanakan beberapa kali, ia hanya akan disusun sekali, jadi prestasinya lebih tinggi ; > 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(); });
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;
?
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); });
rreee
Kaedah Janjiconst 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('数据库连接成功~') } }) })
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:
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.;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); });
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!