# Struct für Datenbank abfrage?



## Andreas1989 (14. Mai 2009)

Hallo zusammen,
ich habe mir eine Struct(Classe) in Java gemacht in die ich die Daten schreibe die ich von meiner Datenbank abrufe.
So Sieht die Tabelle aus: Artikel(*A_ID*, _H_nr_, _Ag_nr_, A_bez1, A_bez2, A_bestand, A_vk, A_erstellt, A_lieferant, A_verkauft, A_ek, A_bemerkung)

so Sieht mein Struct aus:


```
package ownclasses;

public class MyStructArtikel
{
  protected String bez1;
  protected String bez2;
  protected String erstellt; // Datum??
  protected String lieferant;
  protected String bemerkung;
  protected double vk;
  protected double ek;
  protected int id;
  protected int bestand;
  protected int verkauft;
 
  MyStructArtikel()       //Standardkonstruktor zum Erzeugen des Stringobjekts
  {
      String bez1 = new String();
      String bez2 = new String();
      String erstellt = new String();
      String lieferant = new String();
      String bemerkung = new String();
  }
 
  public void setBez1(String Name)
  {
      bez1 = Name;
  }
  public String getBez1()
  {
     return bez1;
  }
 
  public void setBez2(String Name)
  {
      bez2 = Name;
  }
  public String getBez2()
  {
     return bez2;
  }
 
  public void setErstellt(String Name)
  {
	  erstellt = Name;
  }
  public String getErstellt()
  {
     return erstellt;
  }
 
  public void setLieferant(String Name)
  {
	  lieferant = Name;
  }
  public String getLieferant()
  {
     return lieferant;
  }
  
  public void setBemerkung(String Name)
  {
	  bemerkung = Name;
  }
  public String getBemerkung()
  {
     return bemerkung;
  }
  
  public void setVk(double tempdouble)
  {
	  vk = tempdouble;
  }
  public double getVk()
  {
      return vk;
  }
  
  public void setEk(double tempdouble)
  {
	  ek = tempdouble;
  }
  public double getEk()
  {
      return ek;
  } 
   
  public void setId(int tempint)
  {
	  id = tempint;
   }
  public int getId()
  {
      return id;
  }
  
  public void setBestand(int tempint)
  {
	  bestand = tempint;
   }
  public int getBestand()
  {
      return bestand;
  }

  public void setVerkauft(int tempint)
  {
	  verkauft = tempint;
   }
  public int getVerkauft()
  {
      return id;
  }
}
```

Ist das so i.O. oder würdet ihr das anders machen. Ich habe da leider noch nicht viel Erfahrung.

Gruß
 Andi


----------



## ARadauer (14. Mai 2009)

ich würde es nicht struct nennen ;-) wir sind hier in der java welt

ich (bzw eclipse erstellt es mir so) nenne auch immer den paramter wie die Eigenschaft...


```
public String getBez1() {
      return bez1;
   }
   public void setBez1(String bez1) {
      this.bez1 = bez1;
   }
```


aber im Grunde passt das


----------



## SlaterB (14. Mai 2009)

die Buchstaben 'Struct' in dieser Reihenfolge haben in Java nichts zu suchen,

---------

Variaben und auch Parameter von Methoden immer klein schreiben

-----

Klassenattribute besser immer private, besonders, wenn du getter + setter hast

-----

'new String()' hat in einem Java-Programm auch nichts zu suchen, "" steht für einen leeren String, falls du den meinst,
im Konstruktor legst du auch nur lokale Variablen an,
wenn du Klassenattribute belegen willst, dann schreibe
bez1 = "";
statt
String bez1 = "";

vergleiche das mit deiner setter-Methodd

-----

nichtssagende Parameter wie tempint sind zu vermeiden, wenn überhaupt, dann verwende dafür i, j, k,
besser aber den Parameter wie das Attribut nennen, und sei es 

 public void setVerkauft(int tempVerkauft)


----------



## Andreas1989 (14. Mai 2009)

Hallo,
vielen Dank für die Tipps, werd ich mir merken.
Aber noch eine Frage: Das es ein Struct in Java nicht mehr gibt weis ich - kommt noch aus C. Wie nennt ihr das ganze dann in Java?

Danke.
Gruß
 Andi


----------



## tfa (14. Mai 2009)

Andreas1989 hat gesagt.:


> Wie nennt ihr das ganze dann in Java?


Klasse


----------



## maki (14. Mai 2009)

Nun, manche werden sagen JavaBean, obwohl das nicht ganz zutrifft.

Habe letzens in einem Buch (Clean Code) eine imho passendere Definition gefunden: "DataType"
Da es sich nicht um echte Objekte (mit verhalten) handelt.


----------



## SlaterB (14. Mai 2009)

das Wort Klasse sollte allerdings genausowenig in Klassennamen enthalten sein, 
auch der packagename ownclasses ist grenzwertig

wenn man es ganz genau nimmt ist auch 'My' verpönt, aber das sind alles Kleinigkeiten

 public class Artikel
ist doch schön,
oder falls es mehrere Artikel-bezogene Klassen gibt:
 public class ArtikelBean
 public class ArtikelData

über deutsch-englisch kann man allerdings auch wieder meckern


----------



## tfa (14. Mai 2009)

Ich meine, man sollte diese Klasse einfach "Artikel" nennen. (Oder ArtikelImpl falls es - aus welchen Gründen auch immer - ein Interface namens Artikel gibt)


----------



## Andreas1989 (14. Mai 2009)

Hallo SlaterB,
ich beende nächsten Monat meine Ausbildung zum Fachinformatiker - Systemintegration. In der Berufsschule hatten wir nicht all viel Java. Programmieren macht mir aber trotzdem spass.

Wenn ich jetzt was programmiere, möchte ich es "sauber" machen - angefangen bei der bennenung von Variablen Klassen etc. Gibt es da vielleicht ein Buch oder ein anderes Medium mit Tipps zur bennung von Klassen, Methoden etc. Oder macht man die bennung nach eigenen Vorstellungen die man durch Erfahrung sammelt?

Gruß
 Andi


----------



## SlaterB (14. Mai 2009)

ich kann keins nennen, 
schau dir die API an und Beispiele, auch aus Lehrbüchern,
dann bemerkt man doch gewisse Stile


----------



## maki (14. Mai 2009)

Hier: Code Conventions for the Java(TM) Programming Language: Contents

Sind zwar nicht mehr zu 100%  aktuell/akurat, aber immerhin schon mal ein guter Anfang


----------



## tfa (14. Mai 2009)

Auf jeden Fall sollte man sich an die Java Coding Conventions halten (so gut wie sinnvoll):
Code Conventions for the Java(TM) Programming Language: Contents

Das erklärt nicht, wie man jetzt seine Klassen nennen soll, sondern nur, wie die Namen aussehen sollten.


----------



## Andreas1989 (14. Mai 2009)

vielen Dank. Super Tipps!

Gruß
 Andi


----------

