Newsgroup: it.comp.java
Titolo: Inserimento valori in db mysql...

Salve ragazzi,
vorrei chiedervi un aiuto perchè non so proprio come fare.
Ho realizzato un'applicazione in JSF che tra le tante cose converte un
file in input in un array di byte. Devo ora inserire quest'array di
byte in un campo blob di un database mysql.
Come posso fare?
Esiste un tutorial che mi faccia vedere come muovermi?Vi ringrazio
anticipatamente

 file in input in un array di byte. 
Penso che l'abbiamo capito, hai fatto diciotto post sullo stesso 
argomento :D
Ehi, non e' che adesso cominci anche con questo? :/
(no, non ti so aiutare su questo problema)
Saluti
CarMas

 anticipatamente
Esistono le API e Google, che tra le occorrenze mi ha suggerito questo
interessante post:
http://forum.java.sun.com/thread.jspa?threadID=576315&messageID=2886886

Grazie And per la disponibilità e il consiglio che mi hai
dato,disponibilità che non "tutti" sempre hanno....

 dato,disponibilità che non "tutti" sempre hanno....
Non credo si divertano a non risponderti o a farlo in modo scortese,
semplicemente fossi in te terrei il NG come terza scelta, dopo le API e
Google: io in genere faccio così, ma purtroppo non ricevo quasi mai
risposte qui! (vedi miei ultimi post) :-P
...il fatto è che sulle API c'è scritto veramente di tutto...trovi
anche dei pezzi di codice! Inoltre per le tue FAQ ci sono sempre
Mokabyte e Javaportal.
CIAO!

Ma è così difficile????
Ho terminato di sviluppare il tutto,ma non riesco a farlo
funzionare!!!!
Vi chiedo  cortesemente di aiutarmi,è importante e ci sto perdendo la
testa.....
io ho una funzione
codice:
public  String carica()throws IOException{
    	BufferedReader br = new BufferedReader(new
InputStreamReader(myFile.getInputStream()));
            String line = null;
            while ((line = br.readLine()) != null) {
                    line = line.replace (',', '.');
                    StringTokenizer st = new StringTokenizer(line);
                    numberOfNumericColumns = (st.countTokens()-1);
                    col=(numberOfNumericColumns+1);
                //se siamo nella prima riga(contatore segna 0)
                    if(row==0){
                    	intest=new String[col];
                    	int j=0;
                    	while(st.hasMoreTokens()){
                    		intest[j]=(st.nextToken().trim());
                    		j++;
                    	}
                    	h=new Head(intest);//crei l'oggetto head
                    	String []qa=h.getHvalues();
                    	String asd="";
                        for(int i=0;i<=qa.length-1;i++){
                        	asd=asd.concat(qa[i]+" ");
                        }
                        System.out.println("head "+asd);//stampo
contenuto dell' head
                        row=1;
                    }//fine if
                    else
                    {
                    	Double[] values=new
Double[numberOfNumericColumns];
                        int z=0;
                        geneid=st.nextToken();
                        while (st.hasMoreTokens()) {
                        	String app=st.nextToken();
                            values[z]=Double.valueOf(app);
                            z++;
                        }
                        r=new Riga(geneid,values); //crei l'oggetto
riga
                        System.out.println("riga");
                        System.out.println(r.getgeneid());
                        values=r.getvalues();
                        for(int e=0;e<=values.length-1;e++){
                        	System.out.println(values[e]);
                        }
                        insRighe(r); //aggiungi
                    }
                    row++;
            }
            while(i<intest.length){
            	byte[] bytesnew=intest[i].getBytes();
            	//temp.addAll(bytesnew);
            	//memorizza in byte un elemento del vettore alla volta
    			for(byte b : bytesnew) temp.add(new Byte(b)); //provare Byte
            	//temp.addElement(intest[i].getBytes());
                	temp.addElement(Byte.valueOf(middlerow));
                	i++;
            }
            temp.addElement(Byte.valueOf(endrow));
            System.out.println("Intestazione convertita in byte");
            for(int l=0;l<rows.size();l++){
                r=(Riga)rows.get(l);
                g=r.getgeneid();
                //temp.addElement(g.getBytes());
                byte[] byte2=g.getBytes();
                for(byte c : byte2) temp.add(new Byte(c));
                temp.addElement(Byte.valueOf(middlerow));
                val=r.getvalues();
                byte[] tempByte1;
                for(int e=0;e<=val.length-1;e++){
                	//Returns a string representation of the double
argument.
                	tempByte1 = Double.toString(val[e]).getBytes();
                    for (int j = 0; j < tempByte1.length; j++) {
                    	temp.addElement(Byte.valueOf(tempByte1[j]));
                    }
                    temp.addElement(Byte.valueOf(middlerow));
                }
                temp.addElement(Byte.valueOf(endrow));
            }
            data=new byte[temp.size()];
            //OutputStream os=new OutputStream(file);
            for (int t=0;t<temp.size()-1;t++) {
            	data[t]=(((Byte)temp.elementAt(t)).byteValue());
            }
            dbs.addtoblob(data);
            return "success";
    }
dove myFile rappresenta il file che do in unpload dalla mia pagina jsp
e il tutto è definito
in MyBean.java, dove in successione la mia applicazione prende un file
di ingresso e me lo trasforma in un array di byte(data nel mio
programma).
Ora dovrei "semplicemente" inserire questo data insieme ad es. ad un
nome(antonio) nelle 2 colonne di una tabella tbl da me definita in un
database di nome nomeDB .
E' così difficile che io non riesco a portarlo a
termine????????????????????????????
Ho implementato le 2 seguenti classi:
Database.java che mi gestisce la connessione con il database e sembra
vada bene
codice:/*
 * Classe dedicata alla gestione del Database.
 * Gestisce l'apertura e la chiusura della connessione col Database
 * Fornisce i metodi per l'esecuzione delle query sul Database
 */
import java.sql.*;
import java.util.Vector;
public class Database {
   private String nomeDB;       // Nome del Database a cui connettersi
   private String nomeUtente;   // Nome utente utilizzato per la
connessione al Database
   private String pwdUtente;    // Password usata per la connessione al
Database
   private String errore;       // Raccoglie informazioni riguardo
l'ultima eccezione sollevata
   private Connection db;       // La connessione col Database
   private boolean connesso;    // Flag che indica se la connessione è
attiva o meno
   public Database(String nomeDB) { this(nomeDB, "", ""); }
   public Database(String nomeDB, String nomeUtente, String pwdUtente)
{
      this.nomeDB = nomeDB;
      this.nomeUtente = nomeUtente;
      this.pwdUtente = pwdUtente;
      connesso = false;
      errore = "";
   }
   // Apre la connessione con il Database
   public boolean connetti() {
      connesso = false;
      try {
         // Carico il driver JDBC per la connessione con il database
MySQL
         Class.forName("com.mysql.jdbc.Driver");
         // Controllo che il nome del Database non sia nulla
         if (!nomeDB.equals("")) {
            // Controllo se il nome utente va usato o meno per la
connessione
            if (nomeUtente.equals("")) {
               // La connessione non richiede nome utente e password
               db =
DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB);
            } else {
               // La connessione richiede nome utente, controllo se
necessita anche della password
               if (pwdUtente.equals("")) {
                  // La connessione non necessita di password
                  db =
DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB +
"?user=" + nomeUtente);
               } else {
                  // La connessione necessita della password
                  db =
DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB +
"?user=" + nomeUtente + "&password=" + pwdUtente);
               }
            }
            // La connessione è avvenuta con successo
            connesso = true;
         } else {
            System.out.println("Manca il nome del database!!");
            System.out.println("Scrivere il nome del database da
utilizzare all'interno del file \"config.xml\"");
            System.exit(0);
         }
      } catch (Exception e) { errore = e.getMessage(); }
      return connesso;
   }
   // Chiude la connessione con il Database
   public void disconnetti() {
      try {
         db.close();
         connesso = false;
      } catch (Exception e) { e.printStackTrace(); }
   }
   public boolean isConnesso() { return connesso; }   // Ritorna TRUE
se la connessione con il Database è attiva
   public String getErrore() { return errore; }    // Ritorna il
messaggio d'errore dell'ultima eccezione sollevata
   public Connection getConnection() { return db; }
e
codice:uploadData.java che esegue la vera e propria query
import java.io.IOException;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Vector;
public class uploadData {
		private database dbs=new database("nomedb","root","shevagol");
		private byte[] data=MyBean.getdata();
		public uploadData(){
		}
		public void addtoblob(data){
			if ( !dbs.connetti() ) {
				System.out.println("Errore durante la connessione.");
				System.out.println( dbs.getErrore() );
				System.exit(0);
			}
			Connection db=dbs.getConnection();
			PreparedStatement pst = db.prepareStatement("INSERT INTO
Tbl(Nome,File) VALUES (?, ?)");
//		 imposto i valori
			String value = new String(data);
			pst.setString(1, "ciao");
			pst.setCharacterStream(2, new StringReader(value), data.length);
			pst.executeUpdate();
			pst.close();
		}
}
Ma perchè la stringa ciao e il file che do attraverso l'array di byte
non finiscono nel mio database???????
Eppure nella funzione carica ho aggiunto l'istruzione
codice:dbs.addtoblob(data);
Vi prego aiutatemi.....sto impazzendo con questo problema.........

 Vi prego aiutatemi.....sto impazzendo con questo problema.........
lo so č uno sporco lavoro ma qualcuno lo deve pur fare!!
io ti ho dato un piccolo aiuto ma un editor e un debug sarebbero piů
efficaci, e poi una lettura a quelle fantomatiche api, non quelle del miele
č...., java č case sensitive!!!
pensa che io ne so meno di te.
spero che il messagio sia chiaro ;-)
un saluto

 dato,disponibilità che non "tutti" sempre hanno....
Questo non è un helpdesk. Il 100% dei tuoi problemi si risolvono 
guardando javadocs o gugolando 10 secondi. E poi sei buono solo per 
chiedere? C'è un thread in cui sei stato TU a dare una mano?
-- 
Emanuele Torrenti
Registered Linux User #409659
http://torrenti.altervista.org