Avatar billede theboy Nybegynder
05. december 2002 - 12:26 Der er 5 kommentarer og
1 løsning

send til Mysql fra en hashtabel

Hejsa jeg har et problem med at få noget data, som jeg har modtaget som i en hashtabel fra i applet, sendt videre til en MySQL database. Jeg ved ikke helt hvordan syntaksen er mht til sql og jeg er heller ikke helt sikker på det med dato formatet.
Neden under er hvad jeg har indtil nu.
Jeg vil gerne at besvarelserne indeholder den ny kode
-----
import java.sql.*;
import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.net.*;

class ServerTraad extends Thread {

    static Hashtable h = new Hashtable();
    Socket socket=null;
    ObjectOutputStream out;
    ObjectInputStream in;
    String navn;
       
    ServerTraad(Socket socket){
      this.socket=socket;

private void opstart(){
    try{
      out=new ObjectOutputStream( socket.getOutputStream() );
      out.flush();
     
      ObjectInputStream ois=new ObjectInputStream(socket.getInputStream());
            Hashtable h=(Hashtable)ois.readObject();
            String tekst = (String)h.get("tekst");
            String titel = (String)h.get("overskrift");
            java.sql.Date ind = (java.sql.Date)h.get("ind");
            java.sql.Date ud = (java.sql.Date)h.get("ud");
            String kilde = (String)h.get("kilde");
            String interntilstand = (String)h.get("interntilstand");
            Integer billede = (Integer)h.get("billede");
            String overskrift = (String)h.get("overskrift");
            String kategori = (String)h.get("kategori");

          ois.close();
          socket.close();
    ResultSet rs;
              try{
        Connection con;

        Statement st;
        Class.forName("org.gjt.mm.mysql.Driver");   
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test?user=xxxxxxx&password=xxxxxxx");   
        st = con.createStatement();   
        int i = st.executeUpdate("INSERT INTO temp_artikel set tekst='" + tekst + "'");

        }
    catch(UnknownHostException eror)
        {System.err.println(eror);}
    catch(IOException eror)
        {System.err.println(eror);}
    catch(ClassNotFoundException e)
        {}
        }
public void run() {
    opstart();
  } 
}
----------------
Avatar billede theboy Nybegynder
05. december 2002 - 12:31 #1
Beklager slåfejlene og stavning.....
Avatar billede disky Nybegynder
05. december 2002 - 12:31 #2
Dit spørgsmål hører mere hjemme i MySQL gruppen end her.

p.s. post ikke Java kode i MySQL gruppen.
Avatar billede arne_v Ekspert
05. december 2002 - 12:32 #3
Hvad er problemet med din kode ?

Principielt ser det meget fornuftigt ud !

Du henter data ud af Hashtable:

String tekst = (String)h.get("tekst");

Du gemmer data i database:

st.executeUpdate("INSERT INTO temp_artikel set tekst='" + tekst + "'");

Ja - hov den skal lige rettes til enten:

st.executeUpdate("INSERT INTO temp_artikel (tekst) VALUES ('" + tekst + "')");

eller:

st.executeUpdate("UPDATE temp_artikel set tekst='" + tekst + "'");

(men det er SQL ikke Java)
Avatar billede arne_v Ekspert
05. december 2002 - 12:33 #4
Skulle have været et svar.
Avatar billede theboy Nybegynder
05. december 2002 - 12:44 #5
Hvordan får jeg de øvrige data sendt "ind" og "ud". Dette er jo af typen date? Kan du ikke skrive den fulde st.executeUpdate("INSERT INTO temp_artikel..... så den passer med de objeckter fra hashtabellen
Avatar billede arne_v Ekspert
05. december 2002 - 12:53 #6
Jeg kan da ihvertfald tage en af hver data type:

private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

String instr = return df.format(ind);

st.executeUpdate("INSERT INTO temp_artikel (tekst, billede, ind) VALUES ('" + tekst + "'," + billede + ",'" + indstr + "')");

[hvis dine feltnavne i databasen er anderledes
retter du dem bare i listen efter tabel navnet]
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester