So fügen Sie Bilder zu MySQL hinzu: Erstellen Sie zunächst eine Methode zum Lesen von Bildern mit FileInputStream. Stellen Sie dann eine Verbindung zur Datenbank her, schreiben Sie SQL-Anweisungen und verwenden Sie PreparedStatement, um SQL-Anweisungen auszuführen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, MySQL-Version 8.0.22. Diese Methode ist für alle Computermarken geeignet.
Verwandte kostenlose Lernempfehlungen: MySQL-Video-Tutorial
So fügen Sie Bilder zu MySQL hinzu:
1. Der Effekt
ist keine Zeichenfolge, Sie können ihn sehen Die Datentyp auf der linken Seite.
2. Blob-Daten abrufen
Wir erstellen eine Methode, um FileInputStream
读取图片,还有ByteArrayOutputStream
die gelesenen Daten in das Byte[]-Array zu schreiben, und
public static byte[] getImgStr(String path) throws IOException { FileInputStream fis = new FileInputStream(path); ByteArrayOutputStream out = new ByteArrayOutputStream(); int len = 0; byte[] b = new byte[1024]; while ((len = fis.read(b))!= -1){ out.write(b,0,len); } //接收out byte[] array = out.toByteArray(); fis.close(); out.close(); return array; }
3. Stellen Sie eine Verbindung zur Datenbank her und schreiben Sie die SQL-Anweisung
Erstellen Sie mithilfe von Blob ein Blob, konvertieren Sie dann die erhaltenen Bilddaten in einen Blob-Typ und führen Sie dann mit PreparedStatement die SQL-Anweisung aus, da es Platzhalter unterstützt und über eine setBlob-Methode verfügt, die den Wert unserer Blob-Adresse direkt in die Datenbank schreiben kann . Und dann sind Sie fertig.
public static void main(String[] args) { /* 加载驱动 */ try { Class.forName("com.mysql.cj.jdbc.Driver"); //获取连接 String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"; String user= "root"; String password ="123456"; try { Connection connection = DriverManager.getConnection(url,user,password); /* 插入图片 */ byte[] arr = getImgStr("图片地址"); Blob blob = connection.createBlob(); blob.setBytes(1,arr); String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')"; PreparedStatement ps = connection.prepareStatement(sql); ps.setBlob(1,blob); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } }
Verwandte kostenlose Lernempfehlungen: php-Programmierung(Video)
Das obige ist der detaillierte Inhalt vonSo fügen Sie Bilder zu MySQL hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!