Avatar billede jacoberen Nybegynder
01. marts 2005 - 11:14 Der er 10 kommentarer og
1 løsning

Lille oplysningsprogram!

Hej eksperter

Jeg er lige begyndt på Java, og det er jo ret sjovt! Jeg kunne godt tænke mig at lave et lille program. Det skal være såden at man skriver et navn i et tekstfelt og trykker ok. Derefter connecter programmet til en mySQL database og søger.

Tror i det er noget i kan hjælpe mig med?

Hilsen Jacob
Avatar billede alister_crowley Nybegynder
01. marts 2005 - 11:18 #1
Her er et stykke kode som kan forbinde til mysql, og hente noget ud :)

[java]
import java.sql.*;

public class MySQLConnect
{
    private String host,db,username,password;

    public static void main(String[] args) throws Exception
    {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM T1");
    }



}
[/java]

Du skal bruge mysql's j-connecter, som du kan finde på www.mysql.com
Bemærk at det kræver at du har databasen på din egen computer.

For at køre programmet skal du skrive


java -cp .;C:\mysql\java\mysql-connector-java-3.0.14-production-bin.jar

Hvis mysql connectoren ligger i c:\mysql\java\
Avatar billede alister_crowley Nybegynder
01. marts 2005 - 11:20 #2
hov, hele kører strengen kom ikke med. Den skal være sådan her:

java -cp .;C:\mysql\java\mysql-connector-java-3.0.14-production-bin.jar MySQLTest
Avatar billede arne_v Ekspert
01. marts 2005 - 11:37 #3
Swing & JDBC eksempel:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class SimpleDBGUI extends JFrame implements ActionListener {
  private JButton find;
  private JTextField kunde;
  private JTextArea res;
  public SimpleDBGUI() {
      getContentPane().setLayout(new BorderLayout());
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setSize(400, 400);
      kunde = new JTextField();
      getContentPane().add(kunde, BorderLayout.NORTH);
      res = new JTextArea();
      getContentPane().add(res, BorderLayout.CENTER);
      find = new JButton("Søg");
      find.addActionListener(this);
      getContentPane().add(find, BorderLayout.SOUTH);
  }
  public void actionPerformed(ActionEvent evt) {
      try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/Test", "", "");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM T1 WHERE F2='" + kunde.getText() + "'");
        while (rs.next()) {
            int ifelt = rs.getInt(1);
            String sfelt = rs.getString(2);
            res.setText(res.getText() + ifelt + " " + sfelt + "\r\n");
        }
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      } catch (SQLException e) {
        e.printStackTrace();
      }
  }
  public static void main(String[] args) {
      SimpleDBGUI f = new SimpleDBGUI();
      f.show();
  }
}
Avatar billede jacoberen Nybegynder
01. marts 2005 - 13:22 #4
Når jeg skal gemme filen, hvad skal jeg så klade den?
Avatar billede arne_v Ekspert
01. marts 2005 - 13:27 #5
I Java skal public classes og filnavne matche så public class Foobar skal
ligge i Foobar.java
Avatar billede jacoberen Nybegynder
01. marts 2005 - 13:31 #6
skal jeg bare kalde filen for Foobar.java?
Avatar billede alister_crowley Nybegynder
01. marts 2005 - 13:33 #7
mit eksempel:

MySQLConnect.java

arne_v's eksempel:

SimpleDBGUI.java

Og hvis du ikke har forstået så simpelt java her endnu, er det nok lidt for tidligt at gå i krig med JDBC og SQL.
Prøv at lave noget mere simpelt først.
Avatar billede jacoberen Nybegynder
01. marts 2005 - 13:41 #8
Ok jeg har forstået!
Nu har jeg rettet Arnes kode til hvad skal jeg så gøre for at bruge det?
Avatar billede alister_crowley Nybegynder
01. marts 2005 - 14:58 #9
har du downloadet j-connecter ?

så kører du det bare med den kommando jeg skrev til at starte med, husk at rette filnavnet.

Jeg går ud fra at du er klar over hvordan man kompiler/kører java applications fra kommandopromt.
Avatar billede arne_v Ekspert
01. marts 2005 - 19:34 #10
Du oversætter det med javac kommandoen og kører det med java kommandoen
Avatar billede jacoberen Nybegynder
20. marts 2005 - 15:59 #11
Lukker... fik det ikke til at virke!
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