首页 > 数据库 >typeorm mysql 存储base64

typeorm mysql 存储base64

时间:2024-03-11 20:22:35浏览次数:21  
标签:Base64 Buffer base64 MyEntity entity mysql import typeorm

在TypeORM中使用MySQL存储Base64数据时,可以将Base64字符串转换为二进制数据并存储在BLOB字段中。以下是一个简单的例子:

首先,确保你的实体有一个适当的列类型,比如blob。

import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity()
export class MyEntity {
@PrimaryGeneratedColumn()
id: number;

@Column('blob')
base64Data: Buffer;
}

然后,在你的服务或者控制器中,你可以将Base64字符串转换为Buffer并保存到数据库中。

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import * as Buffer from 'buffer/';
import { MyEntity } from './my.entity';

@Injectable()
export class MyService {
constructor(
@InjectRepository(MyEntity)
private readonly myRepository: Repository<MyEntity>,
) {}

async saveBase64(base64String: string): Promise<MyEntity> {
// 移除Base64字符串中的前缀(如'data:image/png;base64,')
const data = base64String.split(',')[1];
// 将Base64字符串转换为Buffer
const buffer = Buffer.from(data, 'base64');

const entity = new MyEntity();
entity.base64Data = buffer;

return this.myRepository.save(entity);
}
}

在这个例子中,我们定义了一个服务MyService,它有一个saveBase64方法,该方法接受一个Base64编码的字符串,将其转换为Buffer,然后创建或更新一个MyEntity实例。

请注意,这里使用了NestJS的依赖注入和修饰符,但是这不是使用TypeORM存储Base64数据的必要条件。这只是一个如何在NestJS应用程序中实现这一功能的例子。

标签:Base64,Buffer,base64,MyEntity,entity,mysql,import,typeorm
From: https://www.cnblogs.com/sexintercourse/p/18066965

相关文章

  • t05_Mysql_properties驱动配置
    mysql-properties#mysql5驱动com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.password=rootspring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&userUnicode=true&characterEncoding=utf-8spring.datasour......
  • k01_mysql
    视图---事务---游标---存储过程---触发器1、视图创建视图--创建一个名为:view_student_info的视图,将student的所有信息放在视图中CREATEVIEWview_student_infoASSELECT*FROMstudent--指定创建视图名中的字段名称(默认创建的视图字段与原表完全相同,但是也可以不同)CRE......
  • mysql查询几天之前,或某个时间段之间的每天记录数量,不存在补全0
    直接看SQL(非常简单,通俗易懂)biz_requirement_order:业务表名create_time:业务表时间字段,依据这个字段统计数量num:数量返回值别名,可以随意改t表:查询所有符合条件的日期a表:业务表中根据日期分组,查询每天的记录数量最后使用左连接查询,将两个集合合并返回最终结果查询几天之前......
  • 一文学会JDBC实现java和mySQL的数据连接(尚硅谷学习课程代码+笔记+思路总结)
    JDBC是指数据库连接技术,用于java连接mySQL等数据库。本文详细介绍了尚硅谷课程中JDBC的学习内容和补充知识。概述java语言只提供规范接口,存在于java.sql.javax.sql包下,然后数据库软件根据java提供的规范实现具体的驱动代码(jar)jar包是java程序打成的一种压缩包格式,只要导入就......
  • MySQL如果数据存在则更新,不存在则插入
    如果数据存在则更新,不存在则插入,MySQL有duplicate、replaceinto、replace三种方式如何更新数据?insertignoreinto又是如何插入数据的呢?准备表和基础数据测试MySQL版本:8.0.35usetestdb;#droptabletb_student;CREATETABLE`tb_student`(`id`intNOTNULLAUTO_IN......
  • MySQL如何选择时间类型
    日常业务中经常需要记录时间,如订单生成时间、记录保存时间、更新时间等。如何选择MySQL表的时间字段类型呢?一句话,看业务,具体是看业务是否会跨时区。MySQL的日期类型可以用于记录日期的格式有:Datatype实例备注DATE'0000-00-00'日期(年月日)TIME'00:00:00'......
  • MySQL 进阶实战
    目录1.数据库设计与规范化1.1.实体关系模型(ER模型)简介1.2.数据库设计的范式化过程1.3.设计常见问题和解决方案2.高级SQL技巧2.1.聚合函数和分组查询2.2.子查询和联合查询2.3.视图的创建和使用2.4.存储过程和触发器的概念3.数据库连接与应用开发3.1.使用编程......
  • MySQL分组之后按照固定顺序排序 FIELD
    以下回答来自通义千问:要按照特定顺序显示type字段的统计结果,MySQL并没有提供直接按指定顺序进行GROUPBY的方法。但是,你可以结合ORDERBY语句和FIELD()函数来实现这一需求。FIELD()函数可以将某个字段的值与一系列指定值进行比较,并按照指定值的顺序排序。假设你希望固定的type顺......
  • mysql5.7MHA配置
    准备工作,三台服务器,安装mysql5.7-glibc版本,做主从配置,用gtid模式。安装mysql1、准备安装包[root@hk2install]#llmysql-5.7.32-linux-glibc2.12-x86_64.tar.gz-rw-r--r--1rootroot661214270Jan2019:59mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz 2、解压缩,环......
  • 代码实现上传Base64图片到七牛云OSS
    依赖<!--https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk--><dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.14.0</version></dependency><......