[Java] Binary file in MySQL BLOB proppen, hoe?

Pagina: 1
Acties:

  • CT
  • Registratie: September 2001
  • Laatst online: 12:19

CT

📱💻 🎮 ⌚🖥

Topicstarter
Het zit zo:
Ik heb een applet die een file uitleest (plaatjes over het algemeen) en deze wil ik in een BLOB proppen in me MySQL database.

Alleen het probleem met binaire data is dat het in "string" formaat barst van de vage tekens e.d.
Dus nu is me vraag: Is er in Java een functie om van deze String een MySQL code te maken die wel insert-baar is?

In PHP heb je bijv. zo'n functie die rare tekens vervangt met van die speciale sql ascii-waardes, zo'n functie zoek ik dus in Java.

Ik heb me al helemaal gestoord gezocht maar ik ben bang dat het er niet is :(

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Werkt het niet als je gewoon de string die je van Java krijgt in de database stopt? Volgens mij moet dat gewoon kunnen?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • CT
  • Registratie: September 2001
  • Laatst online: 12:19

CT

📱💻 🎮 ⌚🖥

Topicstarter
NMe84 schreef op 16 mei 2004 @ 13:02:
Werkt het niet als je gewoon de string die je van Java krijgt in de database stopt? Volgens mij moet dat gewoon kunnen?
Ik doe nu:
rs = stmt.executeQuery("INSERT INTO tabelletje VALUES(null, \"" + binaire.String + "\")");

En dan krijg je vaak fouten als:

java.sql.SQLException: Syntax error or access violation: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'A^¥A@%:¸Ê¤Uy""lâòËG MÆ3Ç%+x«|ae<«}ÜæÂY
»9Ñ2æEýÞ._áø&Ý%i

maw er zit teveel troep in de query die er een beetje uitgefilterd moet worden met bijv die sql ascii codes..

Verwijderd

Maak gebruik van een PreparedStatement en dan kun je de setBlob methode gebruiken.

  • CT
  • Registratie: September 2001
  • Laatst online: 12:19

CT

📱💻 🎮 ⌚🖥

Topicstarter
Verwijderd schreef op 16 mei 2004 @ 13:06:
Maak gebruik van een PreparedStatement en dan kun je de setBlob methode gebruiken.
Ah :) Dat ga ik even testen ;)

  • CT
  • Registratie: September 2001
  • Laatst online: 12:19

CT

📱💻 🎮 ⌚🖥

Topicstarter
Ben er nual de hele dag mee bezig maar met die BLOB zooi blijf ik maar NUllPointerExceptions krijgen !?!?!

code:
1: byte[] bytearray;
*knip*
2: Blob eenBlob = null;
3: eenBlob(0, bytearray);

regel 3 blijft nullpointer fouten geven, en die bytearray is gewoon goed want met andere functies werkt die wel gewoon.

Als ik het zo doe:
1: OutputStream outfile;
*knip*
2: Blob eenBlob = null;
3: outfile = eenBlob.setBinaryStream(0);

Krijg ik ook bij regel 3 een nllpointer fout?!?! Maar dit moet zowiezo gewoon werken... WAT is er in godsnaam aan de hand??
:'(

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 25-05 20:56
Misschien moet je eerst de Java tutorial even doorlezen voordat je je aan database accessiblity waagt. Als je een null reference naar een object hebt (regel 2) dan kun je daar natuurlijk niet zomaar methoden op aan roepen (regel 3)!

Instantieer dus eerst een nieuw object, dat de Blob-interface implementeert. Helaas zijn er geen kant-en-klare klassen die die interface implementeren (voor zover ik in de documentatie kon zien <-- hint ;) ) dus zul je er zelf een klasse voor moeten schrijven.

[ Voor 30% gewijzigd door Soultaker op 16-05-2004 16:28 ]


  • CT
  • Registratie: September 2001
  • Laatst online: 12:19

CT

📱💻 🎮 ⌚🖥

Topicstarter
Hier was ik al bang voor, maar dan is die blob implementatie best lamlendig in java :P
Maarja, ik ga het wel omslagtig via een resultset testen.

  • Skaah
  • Registratie: Juni 2001
  • Niet online
java.sql.SQLException: Syntax error or access violation: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'A^¥A@%:¸Ê¤Uy""lâòËG MÆ3Ç%+x«|ae<«}ÜæÂY
»9Ñ2æEýÞ._áø&Ý%i
Je moet wel even escapen hè.

  • CT
  • Registratie: September 2001
  • Laatst online: 12:19

CT

📱💻 🎮 ⌚🖥

Topicstarter
Skaah schreef op 16 mei 2004 @ 16:39:
[...]

Je moet wel even escapen hè.
en hoe doe je dat dan in java?
nou met setString :) dan krijg ik de data als string in de DB nu maar dan "werkt" het nietmeer als je het eruit haalt.
Dus dat Blob verhaal moet ik nog een oplossing op vinden:P

[ Voor 36% gewijzigd door CT op 16-05-2004 17:30 ]


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

kijk eens hier: http://java.sun.com/devel...ercises/BLOBPut/help.html

Beetje Google-Fu doet wonderen.

Nu met Land Rover Series 3 en Defender 90

Pagina: 1