【Oracle】springboot连接Oracle写入blob类型图片数据

news/2025/2/14 8:30:24/

目录

  • 一、表结构
  • 二、mapper 接口和sql
  • 三、实体类
  • 四、controller
  • 五、插入成功后的效果

springboot连接Oracle写入blob类型图片数据

一、表结构

-- 创建表: student_info 属主: scott (默认当前用户)
create table scott.student_info (sno         number(10) constraint pk_si_sno primary key,sname       varchar2(10),sex         varchar2(2),create_date date,headimage blob
);

二、mapper 接口和sql

@Mapper
public interface StudentMapper {@Insert("insert into scott.student_info (SNO, SNAME,SEX,CREATE_DATE,HEADIMAGE) values (#{sno},#{sname},#{sex},sysdate,#{headimage})")int addStudent(Student student);
}

三、实体类

@NoArgsConstructor
@AllArgsConstructor
@ToString
@Data
public class Student {private int sno;private String sname;private String sex;private Date create_date;private byte[] headimage;public Student(int sno,String sname,String sex,byte[] headimage){this.sno = sno;this.sname = sname;this.sex = sex;this.headimage = headimage;}
}

四、controller

@Slf4j
@RestController
public class StudentController {@Resourcepublic StudentMapper studentMapper;@PostMapping("/addStudent")public String addStudent(String name, String sex, @RequestParam MultipartFile file){// 将MultipartFile 格式 转换成byte[]类型,以便插入Oracle blob类型字段。InputStream ins = null;byte[] data=new byte[1024];try {ins = file.getInputStream();byte[] buffer=new byte[1024];int len=0;ByteArrayOutputStream bos=new ByteArrayOutputStream();while((len=ins.read(buffer))!=-1){bos.write(buffer,0,len);}bos.flush();data = bos.toByteArray();} catch (IOException e) {e.printStackTrace();}finally {ins.close();}int sno= RandomUtil.randomInt(1,1000000);//产生一个[10, 100000)的随机数Student student = new Student(sno,name,sex,data);log.info("String.valueOf(student.getHeadimage().length) "+String.valueOf(student.getHeadimage().length));//log.info("入参 "+student);int i = studentMapper.addStudent(student);log.info("插入值 i "+i);//return AjaxResult.success("插入成功",i);if (i>=1){return "插入成功";}else {return "插失败功";}}}

五、插入成功后的效果

如下图所示,查询出来后能查看到图片。
在这里插入图片描述


http://www.ppmy.cn/news/553772.html

相关文章

ubuntu 20.04 修改文件夹默认图标

rt: 修改图标不用下载什么软件,早个网站下载png或者ico格式的图标,放到要修改的文件夹下或者其他地方,然后右键点击属性,然后左键点击图标的地方,就可以修改了,选择到你想要的图片,保存一下就可以了. ps: 如果怕删除掉图标文件,可以在名称前加个点隐藏 ps这里主要修改的是自…

ini更改文件夹图标

desktop.ini文件格式: [.ShellClassInfo] InfoTip我的软件宝库 IconFileegg.ico IconIndex0 步骤: 1.如我欲设置“软件备份”文件夹的图标,则将desktop.ini文件存放到该文件夹内; 2.设置该文件夹的属性为"系统属性",修改后的效果会…

Windows 10 修改文件夹图标

有时某个文件夹里放了一些比较重要或者比较常用的文件,希望它能有个特殊图标,让人一眼就看到。 Windows 10中修改文件夹图标的方法如下: 右击文件夹 > 属性 > 自定义 > 更改图标 更改图标成功。

Mac文件夹图标修改软件:Folder Factory

Folder Factory是macOS的基本图标工具,可帮助您自定义,设计和增强文件夹图标。有了它,您可以将文件夹图标与图像,文本,草图和形状结合在一起。这将改善系统的外观,使Mac井井有条,并提高工作效率…

如何为文件夹添加图标

我使用的是win10系统,在使用了iCloud之后,发现里面文件夹前面显示的有图标,看起来很清楚,也很美观。于是我想在需要的文件夹前面添加图标,步骤如下: 右键单击文件夹,选择属性。在属性中&#x…

Windows11修改文件夹图标的方法

1.将.ico图标文件放入文件夹 2.点击上面三点,打开 选项 3.点击查看,在下面的高级设置中找到“隐藏受保护的操作系统文件(推荐)”取消勾选,确定 4.打开desktop.ini如果没有就创建一个 5.文件内容如下: [.…

计算机系统文件夹图标不见了,为何我的电脑文件夹的图标都没有了

1.在文件夹的空白处点击鼠标右键,查看——显示桌面图标。 2.如果故障依旧,打开任务管理器(按下“CtrlAltDel”组合键即可打开),点击“文件”→“新建任务”,在打开的“创建新任务”对话框中输入“explorer”,单击“确定…

Unity自定义文件夹图标颜色 个性化Unity编译器 unity 彩色文件夹

一直以来 都是使用默认的编译器各种图标也没法修改的好看或者醒目一点 , 在Unity商店搜索半天 , 终于 让我找到了一个神级插件 果断买下 导入进项目 看效果图 可以自定义文件夹图标颜色以及背景 真是好用的工具 能个性化编译器 看着就让人舒服 不仅可以自定义 插件自带的还有特…