NestJS是基于Node.js構建的Web應用程序框架,它提供了一些獨特的特性,比如模塊化設計、強類型集成等,使得開發者能夠快速高效地構建出高質量的Web應用程序。本文將重點介紹如何在NestJS中連接Oracle數據庫,簡單易懂,方便開發者操作。
在開始前,我們需要安裝`nestjs/typeorm`和`typeorm`這兩個模塊,它們分別封裝了NestJS與TypeORM的集成和TypeORM的功能。安裝指令:`npm i @nestjs/typeorm typeorm --save`。
接著,我們需要在main.ts文件中添加以下代碼:
import { TypeOrmModule } from '@nestjs/typeorm';
// 此處省略其他import內容
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'oracle', // 數據庫類型
host: 'localhost', // 數據庫服務器地址
port: 1521, // 數據庫服務器端口號
username: 'username', // 數據庫賬號
password: 'password', // 數據庫密碼
database: 'database', // 數據庫名稱
schema: 'schema', // 數據庫schema名稱
synchronize: true, // 是否自動同步數據庫表結構
logging: true, // 是否打印SQL查詢日志
entities: [__dirname + '/**/*.entity{.ts,.js}'], // 實體類所在的路徑
}),
// 此處省略其他模塊
],
})
export class AppModule {}
在以上代碼中,我們定義了連接Oracle數據庫的相關配置,包括數據庫類型、服務器地址、端口號、賬號、密碼、數據庫名稱、數據庫schema名稱等信息。我們可以根據自己的實際情況進行更改。注意,如果需要在代碼中使用Entity實體類,需要將實體類所在路徑添加到entities數組中。
接下來,我們可以在其他模塊中使用TypeORM提供的方法來連接數據庫,比如使用Repository查詢、插入、刪除、更新等操作。以下是一個示例:
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
age: number;
}
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private userRepository: Repository,
) {}
async findUserByName(name: string): Promise{
return await this.userRepository.findOne({ name });
}
async createUser(user: User): Promise{
return await this.userRepository.save(user);
}
}
在以上代碼中,我們定義了一個User實體類,它對應了數據庫中的用戶表,有id、name和age三個字段。我們同時定義了一個UserService服務類,它使用@InjectRepository注解注入了User實體類的Repository,在其方法中使用Repository的方法來實現查詢、插入等操作。
以上就是在NestJS中連接Oracle數據庫的基本步驟,通過使用TypeORM提供的語法,我們可以更加清晰地實現增刪改查等操作。希望本文對您有所幫助。