js实现sqlserver查询
使用 Node.js 连接 SQL Server 数据库
在 JavaScript 中实现 SQL Server 查询,通常需要借助 Node.js 环境以及相关的数据库驱动库。以下是实现方法:
安装必要的依赖
确保已安装 Node.js,并通过 npm 安装 mssql 库:
npm install mssql
配置数据库连接
创建一个配置文件或直接在代码中定义连接参数:
const sql = require('mssql');
const config = {
user: 'your_username',
password: 'your_password',
server: 'your_server_ip_or_name',
database: 'your_database_name',
options: {
encrypt: true, // 如果使用 Azure SQL 必须启用
trustServerCertificate: true // 本地开发时可启用
}
};
执行查询操作
通过 mssql 库建立连接并执行查询:
async function queryDatabase() {
try {
await sql.connect(config);
const result = await sql.query`SELECT * FROM your_table_name`;
console.log(result.recordset); // 输出查询结果
} catch (err) {
console.error('Error:', err);
} finally {
sql.close(); // 关闭连接
}
}
queryDatabase();
使用参数化查询防止 SQL 注入
通过参数化查询提升安全性:
async function queryWithParameters(id) {
try {
await sql.connect(config);
const result = await sql.query`
SELECT * FROM your_table_name
WHERE id = ${id}
`;
console.log(result.recordset);
} catch (err) {
console.error('Error:', err);
} finally {
sql.close();
}
}
queryWithParameters(1); // 示例调用
使用连接池优化性能
对于高频查询场景,建议使用连接池:
const pool = new sql.ConnectionPool(config);
const poolConnect = pool.connect();
async function queryWithPool() {
try {
await poolConnect;
const request = new sql.Request(pool);
const result = await request.query('SELECT * FROM your_table_name');
console.log(result.recordset);
} catch (err) {
console.error('Error:', err);
}
}
queryWithPool();
处理事务操作
对于需要事务支持的场景:
async function executeTransaction() {
const transaction = new sql.Transaction(pool);
try {
await transaction.begin();
const request = new sql.Request(transaction);
await request.query('INSERT INTO your_table_name (column1) VALUES (value1)');
await request.query('UPDATE your_table_name SET column1 = value2 WHERE condition');
await transaction.commit();
console.log('Transaction committed.');
} catch (err) {
await transaction.rollback();
console.error('Transaction rolled back:', err);
}
}
executeTransaction();
注意事项
- 确保 SQL Server 已启用远程连接(如需远程访问)。
- 生产环境中避免将连接信息硬编码在代码中,建议使用环境变量或配置管理工具。
- 错误处理需完善,避免未捕获的异常导致进程退出。
- 查询大量数据时考虑分页或流式处理,避免内存溢出。







