📅  最后修改于: 2023-12-03 15:24:58.334000             🧑  作者: Mango
在开发应用程序时,我们经常需要使用数据库来存储数据和进行相关操作。使用MySQL时,存在一种常见情境,即需要在程序中判断数据库是否存在,若不存在则创建一个新的数据库。本文将介绍如何在Spring Boot with TypeScript中使用MySQL来实现这一功能。
在开始之前,您需要了解以下内容:
首先,在您的Spring Boot with TypeScript项目的pom.xml文件中添加MySQL依赖项:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>{版本号}</version>
</dependency>
在您的Spring Boot with TypeScript项目的src/main/resources文件夹中创建application.yml配置文件:
spring:
datasource:
url: jdbc:mysql://{数据库地址}:{数据库端口}/{数据库名称}?useSSL=false&serverTimezone=UTC
username: {数据库用户名}
password: {数据库密码}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: none
show-sql: true
这里,您需要修改以下属性:
创建一个MySQL服务类用于创建数据库。在您的Spring Boot with TypeScript项目中创建一个名为MySQLService的服务类:
import { Injectable } from '@nestjs/common';
import { createConnection, Connection } from 'typeorm';
@Injectable()
export class MySQLService {
private connection: Connection;
constructor() {
this.createDatabase();
}
async createDatabase() {
this.connection = await createConnection({
type: 'mysql',
host: '{数据库地址}',
port: {数据库端口},
username: '{数据库用户名}',
password: '{数据库密码}',
database: null,
entities: [],
synchronize: true,
});
await this.connection.query(`CREATE DATABASE IF NOT EXISTS {数据库名称}`);
this.connection.close();
}
}
这里,您需要修改以下属性:
在您的Spring Boot with TypeScript项目的app.module.ts文件中导入MySQLService:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { MySQLService } from './mysql.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService, MySQLService],
})
export class AppModule {}
这样,MySQLService就可以通过依赖注入来在应用程序启动时创建数据库。
在您的Spring Boot with TypeScript项目的根目录下执行以下命令以启动应用程序:
mvn spring-boot:run
当应用程序启动时,MySQLService会检查是否已创建了指定名称的数据库。如果不存在,MySQLService会自动创建一个新的数据库。
我们已经展示了在Spring Boot with TypeScript中如何创建一个MySQL服务类用于创建数据库。希望本文对您有所帮助。