2017-03-29 2 views
1

Kürzlich vervollständige ich ein Projekt zur Gesichtserkennung mit JavaCV. es speichert Gesichter in Computer-Verzeichnis, aber ich möchte diese Gesichter zu RDBMs wie SQLite speichern, wäre MySQL willkommen.So speichern Sie OpenCV (JavaCV) Trained Faces Bilder in der Datenbank?

-Code für Bild zu speichern, um Computer-Verzeichnis

private String createPictureFilePathName(File dir) { 
    File file = new File(dir.getPath() + "/image-0.png"); 
    int counter = 1; 
    while (file.exists()) { 
     file = new File(dir.getPath() + "/image-" + counter + ".png"); 
     counter++; 
    } 
    return file.getPath(); 
} 

private static JFileChooser initPictureDirChooser() { 
     JFileChooser chooser = new JFileChooser(); 
     chooser.setAcceptAllFileFilterUsed(false); 
     chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     chooser.setCurrentDirectory(new File(System.getProperty("user.home")).getAbsoluteFile()); 
     return chooser; 
    } 

alle führen dies zu ermöglichen Bilder in der Datenbank zu speichern?

+0

den Eingangsstrom der Datei holen und es in db als Blob mit PreparedStatement- speichern. – webcoder

+0

was hast du bisher probiert? –

+0

@AndyJones Ich habe einige Tutorials gefunden: [Beispiel zum Speichern von Bildern in der Oracle-Datenbank] (http://www.javatpoint.com/storing-image-in-oracle-database) und [Wie man ein Bild in MySQL-Datenbank einfügt Java] (http://1bestcsharp.blogspot.com/2015/04/java-how-to-insert-image-in-mysql-Database-Using-Java.html). Bald werde ich implementieren, wenn ich von meinem Terminkalender frei werde. – dgrtkhan09

Antwort

0

Holen Sie den Eingabedatenstrom der Datei und speichern Sie sie in db als Blob mit vorbereiteter Anweisung.

Beispielcode:

public boolean saveFile(File file) throws Exception{ 
    boolean completed = false; 
    ConnectionManager conn = new ConnectionManager(); 
    try { 
     PreparedStatement statement = conn.getConnection().prepareStatement("QUERY_TO_INSERT_FILE"); 
     statement.setBlob(1, file.getInputStream());   
     statement.execute(); 
     conn.commit(); 
     completed = true; 
    } catch (SQLException e) { 
     conn.rollbackQuietly(); 
     e.printStackTrace(); 
     throw e; 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    }finally{ 
     conn.close(); 
    }       
    return completed;  
} 
Verwandte Themen