Bild in einer Datenbank speichern

Habe das jetzt so gemacht.Um erlich gesagt kann ich nicht mehr klar denken.Sorry.


Code:
	public static String getPicture(String key) {

     ResultSet res = stmt.executeQuery("Insert into Pictrue(name,photo) " + "values(1,dj)"+ key + "'");
	
    Blob blob = connection.createBlob();
    ImageIcon ii = new ImageIcon("dj.gif");

    ObjectOutputStream oos;
    oos = new ObjectOutputStream(blob.setBinaryStream(1));
    oos.writeObject(ii);
    oos.close();
    connection.setBlob(2, blob);
    connection.execute();
    blob.free();
    connection.close();

    }









Code:
---------- Javac ----------
LibraryData.java:86: cannot find symbol
symbol  : method setBlob(int,java.sql.Blob)
location: interface java.sql.Connection
    connection.setBlob(2, blob);
              ^
LibraryData.java:87: cannot find symbol
symbol  : method execute()
location: interface java.sql.Connection
    connection.execute();
              ^
2 errors

Output completed (0 sec consumed) - Normal Termination
 
ich glaube du solltest dir wirklich mal die API ankuggn

http://java.sun.com/javase/6/docs/api/

Code46 hat gesagt.:
Code:
---------- Javac ----------
LibraryData.java:77: cannot find symbol
symbol  : method getConnection(java.sql.Connection,java.lang.String)
location: class java.sql.DriverManager
	con = DriverManager.getConnection(con, "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=Library.mdb;");
	                   ^
1 error

Output completed (0 sec consumed) - Normal Termination

warum wolltest du in diesem beipsiel eine ZWEiTE verbindung zur datenbank aufbauen obwohl diese schon steht ?
ich glaube du hast das beispiel nicht verstanden sondern nur kopiert ...
dessweiteren ... : selbst wenn du den method-error ausgebügelt hättest ... wäre es allerspätestens zur runtime zu einer NullPointerException gekommen da Connection con; nicht initialisiert ist


Code46 hat gesagt.:
Code:
---------- Javac ----------
LibraryData.java:86: cannot find symbol
symbol  : method setBlob(int,java.sql.Blob)
location: interface java.sql.Connection
    connection.setBlob(2, blob);
              ^
LibraryData.java:87: cannot find symbol
symbol  : method execute()
location: interface java.sql.Connection
    connection.execute();
              ^
2 errors

Output completed (0 sec consumed) - Normal Termination

ähäm ... API ?=! ...
warum willst du die methoden des statements auf die connection anwenden ?=! ...
diese methoden werden auf Statement und dessen unterklassen *PreparedStatement und CallableStatement* angewendet ... *ja .. auch execute() / update()*


um mal deinem ganzen problem ein wenig vorschub zu verschaffen hier mal der grobe ablaufplan wie sowas gemacht wird

1.) Datenbankverbindung herstellen *also muss das wirklich über ODBC gehen ? gibts keinen nativ-driver für die DB die du ansprechen willst ? btw : in solchen apps wird sowas in der regel über eine SQLite oder meinetwegen sogar über CSV realisiert ... ansonsten währe dein player nicht ohne aufwendige installation auf dem zielsystem ausführbar .... dessweiteren : du machst dich abhängig von Windows > solltest du vermeiden*
2.) Statement vorbereiten *werte verarbeiten und fertig machen*
3.) Statement ausführen *Statement.execute() wird NUR bei der operation SELECT aufgerufen da dies einen wert zurückliefert ... für die anderen operation welche werte in die db schreiben *ja auch ein DELETE gehört dazu* MUSS Statement.update() verwendet werden > weitere info API , Google , Sun , SuFu*
4.) eventuelle rückgabe-werte der db *beim auslesen mit SELECT* verarbeiten
5.) Datenbankverbindung wieder trennen

*1. und 5. sind so zu legen das diese während der laufzeit der app möglichst nur einmal auszuführen sind*

und bitte beim nächsten mal beim posten von JAVA-Source die java - tags verwenden und nicht die normalen code - tags ... dadurch wird java-spezifisches syntax-highlighting verwendet
 
Zurück