Files
ai-showcase-platform/lib/database-service-smart.ts

90 lines
2.5 KiB
TypeScript

// =====================================================
// 智能資料庫服務範例
// =====================================================
import { smartPool } from './smart-connection-pool';
// 這是一個範例,展示如何使用智能連線池
// 你可以將現有的資料庫服務改為使用這個方式
export class SmartDatabaseService {
// 智能查詢範例
static async getUserById(userId: string, requestId?: string) {
return await smartPool.executeQueryOne(
'SELECT * FROM users WHERE id = ?',
[userId],
{
userId,
sessionId: requestId,
requestId: `getUserById_${Date.now()}`
}
);
}
// 智能插入範例
static async createUser(userData: any, requestId?: string) {
return await smartPool.executeInsert(
'INSERT INTO users (name, email, department) VALUES (?, ?, ?)',
[userData.name, userData.email, userData.department],
{
userId: userData.id,
sessionId: requestId,
requestId: `createUser_${Date.now()}`
}
);
}
// 智能更新範例
static async updateUser(userId: string, userData: any, requestId?: string) {
return await smartPool.executeUpdate(
'UPDATE users SET name = ?, email = ?, department = ? WHERE id = ?',
[userData.name, userData.email, userData.department, userId],
{
userId,
sessionId: requestId,
requestId: `updateUser_${Date.now()}`
}
);
}
// 智能刪除範例
static async deleteUser(userId: string, requestId?: string) {
return await smartPool.executeDelete(
'DELETE FROM users WHERE id = ?',
[userId],
{
userId,
sessionId: requestId,
requestId: `deleteUser_${Date.now()}`
}
);
}
// 獲取連線統計
static getConnectionStats() {
return smartPool.getConnectionStats();
}
// 強制清理連線
static forceCleanup() {
return smartPool.forceCleanup();
}
}
// 使用範例:
/*
// 在 API 路由中使用
export async function GET(request: NextRequest) {
const { searchParams } = new URL(request.url);
const userId = searchParams.get('userId');
const requestId = request.headers.get('x-request-id') || 'unknown';
try {
const user = await SmartDatabaseService.getUserById(userId, requestId);
return NextResponse.json({ success: true, data: user });
} catch (error) {
return NextResponse.json({ success: false, error: error.message }, { status: 500 });
}
}
*/