In der realen Entwicklung sollten einige Abfrageergebnisse tatsächlich in ein Objekt eingefügt werden
JSON_OBJECT: () ist die Form des Schlüsselwerts
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;
In einer Viele-zu-Viele-Beziehung hoffen wir, ein Array abzufragen: # 🎜🎜#
und JSON_OBJECT# 🎜🎜# In Kombination verwenden; #🎜 🎜#
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;
Installieren Sie mysql2:
npm install mysql2
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); });
Wenn wir den Dienst nach Erhalt der Daten stoppen möchten, können wir in die Rückruffunktion schreiben:
connection.end()
Vollständiger Code:
connection.query(statement, (err, results, fields) => { console.log(results); connection.end(); });
Vorbereitete Anweisung (vorverarbeitete Anweisung)
Leistung verbessern: Senden Sie das erstellte Anweisungsmodul an MySQL, und dann kompiliert (analysiert, optimiert, konvertiert) MySQL das Anweisungsmodul und speichert
aber später, wenn wir es tatsächlich ausführen, werden wir// 2.执行SQL语句: 使用 ?来对参数进行占位 const statement = ` SELECT * FROM products WHERE price > ? AND score > ?; ` connection.execute(statement, [6000, 7], (err, results) => { console.log(results); });
?
Wir haben zuvor eine Verbindung (Verbindung) erstellt, aber wenn wir mehrere Anfragen haben, ist die Verbindung wahrscheinlich belegt. Dann müssen wir das tun bei jeder Anfrage eine neue Verbindung erstellen? Tatsächlich stellt uns MySQL2 Verbindungspools zur Verfügung; Object Relational Mapping (ORM)
: Es handelt sich um eine Programmierlösung:Es unterstützt viele Funktionen; 🎜#
Wenn wir Sequelize mit MySQL verwenden möchten, müssen wir zuerst zwei Dinge installieren:mysql2: Sequelize verwendet MySQL2, wenn MySQL betrieben wird; 🎜🎜#
Schritt 2: Testen Sie, ob die Verbindung erfolgreich ist;#🎜 🎜#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('数据库连接成功~')
}
})
})
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); });
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
Das obige ist der detaillierte Inhalt vonSo verbinden Sie koa2 mit MySQL in Nodejs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!