gpt4 book ai didi

java - 如何在netbeans java中将图像插入mysql数据库

转载 作者:可可西里 更新时间:2023-11-01 08:10:31 25 4
gpt4 key购买 nike

我对编程知之甚少。我需要将图像保存在 MySQL 数据库中。我已经创建了一个数据库表,并且有一列用于添加具有 longblob 数据类型的图像。我有一个按钮的代码,可以从 PC 的文件夹中选择图像,然后将其加载到 jlable。现在我需要将此图像插入数据库。

这是我的代码;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser fc=new JFileChooser();
fc.showOpenDialog(this);
File f=fc.getSelectedFile();
String path=f.getAbsolutePath();
jLabel1.setIcon(new ImageIcon(path));

try{
FileInputStream fin=new FileInputStream(f);
int len=(int)f.length(); Class.forName("com.mysql.jdbc.Driver");

Connection con=DriverManager.getConnection("jdbc:my­sql://localhost/hss", "root", "bis123");
PreparedStatement ps=con.prepareStatement("Insert into profile values(?)");

ps.setBinaryStream(1, fin, len);
int status=ps.executeUpdate();

if(status > 0) {
jLabel2.setText("Successfully inserted in DB");
}else{
jLabel2.setText("Image not inserted!");
}
}catch(Exception e){
System.out.println(e);
}
}

最佳答案

在MySQL中,当我们使用blob类型存储数据时,它只支持5kb的图像容量。

创建表 image (

id varchar(45) 默认为空,

大小 int(11) 默认为空,

image 长斑

);

在上面的代码中创建了数据库表

这是在数据库中插入图片的java代码

import java.sql.*;
import java.io.*;
public class InsertImagesMysql{
public static void main(String[] args){
System.out.println("Insert Image Example!");
String driverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/";
String dbName = "test";
String userName = "root";
String password = "root";
Connection con = null;
try{
Class.forName(driverName);
con = DriverManager.getConnection(url+dbName,userName,password);
Statement st = con.createStatement();
File imgfile = new File("pic.jpg");

FileInputStream fin = new FileInputStream(imgfile);

PreparedStatement pre =
con.prepareStatement("insert into Image values(?,?,?)");

pre.setString(1,"test");
pre.setInt(2,3);
pre.setBinaryStream(3,(InputStream)fin,(int)imgfile.length());
pre.executeUpdate();
System.out.println("Successfully inserted the file into the database!");

pre.close();
con.close();
}catch (Exception e1){
System.out.println(e1.getMessage());
}
}
}

这里是从数据库中获取数据的代码

import java.io.*;
import java.sql.*;
public class RetriveImagesMysql{
public static void main(String[] args){
System.out.println("Retrive Image Example!");
String driverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/";
String dbName = "test";
String userName = "root";
String password = "root";
Connection con = null;
try{
Class.forName(driverName);
con = DriverManager.getConnection(url+dbName,userName,password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select image from image");
int i = 0;
while (rs.next()) {
InputStream in = rs.getBinaryStream(1);
OutputStream f = new FileOutputStream(new File("test"+i+".jpg"));
i++;
int c = 0;
while ((c = in.read()) > -1) {
f.write(c);
}
f.close();
in.close();
}
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
}

这里只要把fin赋值给jbutton的action事件就会自动触发代码的运行

关于java - 如何在netbeans java中将图像插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com