07. juli 2004 - 10:30Der er
15 kommentarer og 1 løsning
JBuilder9 i samarbejde med DataBase(Billeder)
Hej jeg kan godt skriv og hen data fra min database filen. Men problemet kommer der hvor jeg også vil kunne hente Billede fra database og self. lægge ind i databasse. Her er min problem. Håber det nedstående vil hjelpe. ---------------------------------------------------------------- protected Object convertToObject (ResultSet resultSet) { try { Person person = new Person ( resultSet.getInt("Id"), resultSet.getString("Navn"), resultSet.getString("CPR"), resultSet.getImage("B")//<----Det kan man ikkeGetImage!!!! ); return (person); } catch (SQLException e) { System.out.println("Fejl ved convertToObject fra "+table); return (null); } }
Skriv evt. til Roma_V_B@hotmail.com Tak på forhånd. //Romanov
public class BlobTest { public static void main(String[] args) throws Exception { byte[] b = new byte[(int)(new File("C:\\elogo.png")).length()]; InputStream is = new FileInputStream("C:\\elogo.png"); is.read(b); is.close(); Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/Test", "", ""); PreparedStatement ins = con.prepareStatement("INSERT INTO BlobTest VALUES (?,?)"); ins.setInt(1, 123); ins.setBytes(2, b); ins.executeUpdate(); PreparedStatement sel = con.prepareStatement("SELECT Picture FROM BlobTest WHERE ID=?"); sel.setInt(1, 123); ResultSet rs = sel.executeQuery(); rs.next(); byte[] b2 = rs.getBytes(1); con.close(); OutputStream os = new FileOutputStream("C:\\elogo2.png"); os.write(b2); os.close(); } }
Arne...Prøv se det her import java.util.Iterator; import java.sql.Timestamp; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.Blob;
public class Person {
public int id; public String navn; public String cpr; public String adresse; public String by; public String tellefon; public String email; public String sidstUpDato; public String beskrivelse; public Blob b;
} //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// Det er min person beskrivelse //////////////////////////////////////////////////////////////////////////////// Her kommer PersonAdmistrator //////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
public class PersonAdministrator extends DBObjectAdministrator { private int lastKey = 0; public PersonAdministrator (DBAdministrator dbAdministrator, String table) { super (dbAdministrator, table, "Id","SELECT * FROM "+table); lastKey = getLastKey(); }
public Object get (int key, int key2) { System.out.println("Fejl: der skal anvendes metode med eet nøglerfelt"); throw new UnsupportedOperationException(); }
public boolean contains ( Object object ) { Person person = (Person)object; return get(person.getId()) != null; }
public boolean add ( Object object ) { Person person = (Person)object;
void Findperson_actionPerformed(ActionEvent e ) { CLS(); String HentPerson = JOptionPane.showInputDialog(null, ""); if (HentPerson == null) { return; } else if(HentPerson.equals("")) { return; } int x = Integer.parseInt(HentPerson); Person person = GlobalModel.getObserverSystem().getPerson(x); if (person == null){ JOptionPane.showMessageDialog(null, "Ingen personer blev fundet i systemet med denne nr. ","", 0); return; }else ID.setText("" + HentPerson); Navn.setText("" + GlobalModel.getObserverSystem().getPerson(x).getNavn()); CPR.setText("" + GlobalModel.getObserverSystem().getPerson(x).getCpr()); Adresse.setText("" + GlobalModel.getObserverSystem().getPerson(x).getAdresse()); By.setText("" + GlobalModel.getObserverSystem().getPerson(x).getBy()); Tellefon.setText("" + GlobalModel.getObserverSystem().getPerson(x).getTellefon()); EMail.setText("" + GlobalModel.getObserverSystem().getPerson(x).getEmail()); Beskrivelse.setText("" + GlobalModel.getObserverSystem().getPerson(x).getBeskrivelse()); UpdDato.setText("" + GlobalModel.getObserverSystem().getPerson(x).getsidstUpDato());
Billede.setIcon(GlobalModel.getObserverSystem().getPerson(x).getBillede()); //Det her er så når jeg henter det fra DB. Jeg ved det ik helt... //(Billede er et lable) }
At beskrive først hvordan Objekt(Person) skal se ud derefter hente den fra databasen. Resten virker fint,,,men billede kan jeg ikke finde ud af det(resultSet.GETHVAD) //Romanov
Du gemmer billede i databasen, du henter et byte array ud af result set med getBytes, du viser billedet ved at bruge ImageIcon constructor med byte[] som argument.
Jeg ville lade Person indeholde byte[] og ikke ImageIcon (og først konvertere til ImageIcon når det skal vises. Fordi ellers er der problemer med gem af billede.
System.out.println("Fejl ved convertToObject fra "+table);
med:
System.out.println("Fejl ved convertToObject fra " + table + ": " + e);
så vi kan hvad fejlen er.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.