2017-07-18 8 views
0

Ich habe gerade meine Stelle als Praktikant begonnen und bin von der Arbeit, die ich machen muss, ein wenig überwältigt. Ich habe nie mit Datenbanken gearbeitet und weiß nicht wie ich anfangen soll. Mein Vorgesetzter bat mich, Spring-Daten mit einer In-Memory-Datenbank zu verbinden, um Objekte zu schreiben und zu löschen (wirklich alles). Ich benutze Eclipse und installierte Spring (denke ich), bin aber stecken geblieben und weiß nicht, wo ich anfangen soll und mache es einfach. Ich habe vorher nie in Datenbanken gearbeitet und mein Vorgesetzter scheint die ganze Zeit sehr beschäftigt zu sein.Erste Schritte mit SpringBoot/Spring Data/Hibernate

ich auf dieses Beispiel kam, aber nicht wissen, wo welcher Code zu schreiben, wie es für erfahrene Programmierer zu erklären scheint:

http://projects.spring.io/spring-data/#quick-start

Hier einige der Code aus der Führung ist:

@Entity 
public class Employee { 

    private @Id @GeneratedValue Long id; 
    private String firstName, lastName, description; 

    private Employee() {} 

    public Employee(String firstName, String lastName, String description) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
     this.description = description; 
     } 
    } 

Dies ist auf der Spring Data-Startseite, und es geht um den Einstieg. Aber ich bin mir nicht sicher, was das bedeutet, noch wie man den Code ausführt oder welche Klassen man bauen soll. Wenn ich versuche, ihren Code in der PAM-Datei zu schreiben, zeigt sie nur Fehler an und die Entität funktioniert nicht ...

+0

Was meinst du mit "Ich denke, ich habe Frühling installiert"? Haben Sie die Abhängigkeiten zu Ihrem Pom hinzugefügt oder die Gläser kopiert? Wenn ja, sollten Sie einige der vielen tollen Frühling Tutorials ausprobieren. – Christian

+0

Ich fand Frühling auf dem Eclipse-Marktplatz und installierte die Erweiterung. Ich habe ein Projekt gemacht, das funktioniert hat, bin mir aber nicht sicher, wie ich auf eine Datenbank zugreifen soll, und die Projekte, die ich mache, lese und kopiere nur und versuche, Stücke zu verstehen. – Asker

+0

Vergessen Sie nicht, Antworten zu akzeptieren, die Ihnen geholfen haben ... – Cepr0

Antwort

1
  1. Zuerst Setup Maven in Eclipse (können Sie Anweisungen in Google finden, here zum Beispiel).

  2. Dann gehen Sie zu start.spring.io und generieren Sie Ihre Projektvorlage.Sie müssen nur JPA und H2 wählen (H2 - in-Memory-Datenbank) als Abhängigkeiten, stellen Sie Ihre Gruppe ('com.example' in der Standardeinstellung) und Namen ('Demo' Standard). Klicken Sie dann auf "Projekt erstellen". Nachdem Sie die Datei in einem Verzeichnis auf Ihrem Computer gespeichert und entpackt haben, öffnen Sie dieses Projekt in Ihrer IDE.

  3. Sie finden eine Anwendungsklasse - DemoApplication. Daneben erstellen Sie Ihre Entitätsklasse, zum Beispiel - Employee. Sie werden Ihre Daten speichern und aus der Datenbank laden. Generieren Sie in dieser Klasse getters, setters und toString.

@Entity 
public class Employee { 

    @Id 
    @GeneratedValue 
    private Long id; 

    private String firstName, lastName, description; 

    private Employee() {} 

    public Employee(String firstName, String lastName, String description) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
     this.description = description; 
    } 

    // Autogenerate here getters, setters and toString() 
} 
  1. dann eine 'Repository' Klasse erstellen, die den Zugriff auf Ihre Datenbank bieten:
public interface EmployeeRepository extends JpaRepository<Employee, Long> {} 
  1. in Ihrem Projekt finden sie die DemoApplicationTests Klasse, bearbeiten, dann laufen:
@RunWith(SpringRunner.class) 
@SpringBootTest 
public class DemoApplicationTests { 

    // Injecting your repository 
    @Autoware 
    private EmployeeRepository repo; 

    @Test 
    public void dbTest() { 

     // Create two employees 
     Employee gandalf = new Employee("Gandalf", "Grey", "Wizard"); 
     Employee frodo = new Employee("Frodo", "Baggins", "Hobbit"); 

     // Save them to DB 
     repo.save(Arrays.asList(gandalf, frodo)); 

     // Read them from DB 
     List<Employee> employees = repo.findAll(); 

     // Print them 
     employees.forEach(System.out::println); 
    } 
} 

Das ist alles!

Mehr Informationen:

Spring Data JPA Project

Spring Data JPA Reference

Getting started guide

+0

Also habe ich alles bis Schritt 4 gemacht. Ich habe eine Interface-Klasse in Eclipse an der gleichen Stelle erstellt, an der sich die Employee.java befindet. Es scheint immer noch nicht Entity, Id oder GeneratedValue als existent zu sehen. Ich habe die get/set-Anzeige toString hinzugefügt, aber wenn ich die pom-Datei ausführe, stürzt sie immer noch ab. – Asker

+0

@Asker Zuerst: ** "Danke" ** entspricht ** Annahme/upvoting die Antwort ** hier, vergiss das nicht! Zweitens, wenn Sie nicht wissen, wie man Projekt- und Java-Klassen in Eclipse erstellt, sollten Sie in einer anderen Frage danach fragen. Oder finden Sie die Antwort in Google, zum Beispiel (https://www.google.com.ua/search?q=my+first+maven+project+in+eclipse). Über deine letzten Fragen - entpacke einfach das Projekt, das du unter ** start.spring.io ** erstellt hast, in einem Verzeichnis und öffne es dann als ** neues Projekt ** in Eclipse. Erstellen Sie dann Ihre Entitätsklasse und Repo-Klasse im selben Paket (Ordner) der Anwendungsklasse. – Cepr0

+0

@Asker Sie müssen keine Pom-Datei ausführen. Sie können die Pom-Datei nicht ausführen. Sie können die Anwendung oder einen Test ausführen. In meiner Antwort schlage ich vor, dass Sie nur die Testklasse absolvieren. – Cepr0

0

Wenn Sie den Frühling noch nicht benutzt haben, sind Sie in einem Genuss. Viele Entwickler, die Spring noch nicht kennen, werden durch die Inversion der Kontrollcontainer und die Abhängigkeitsinjektion geschädigt. Es gibt eine Menge historisches Tutorial-Material, das in den XML-Konfigurationsdateien funktioniert, während die meisten Entwickler programmatisch arbeiten wollen. Und das Schlimmste ist, dass Spring dazu neigt, eine Menge Magie zu machen, die nicht immer offensichtlich ist, wenn man den Code betrachtet.

Als Erstes müssen Sie sicherstellen, dass Ihre IDE die richtigen Plugins enthält. Einige der Verwirrung mit Spring kann verringert werden, wenn Sie Dinge wie injizierte Klassen zu ihrer Definition folgen können, was das richtige Plugin für Sie tun kann.

In Bezug auf den Code, den Sie vor sich haben, klingt es wie Ihre Einrichtung ist, wo Sie ein Problem haben und dass Sie vielleicht ein Tutorial für Spring Boot oder ähnliches suchen sollten, um eine funktionierende Anwendung zu bekommen /Container. Dieser Spring Data-Starter setzt voraus, dass Sie bereits eine funktionierende Anwendung haben und beginnt, diese in die Anwendung zu integrieren. Versuchen Sie etwas wie die Sprint Boot quickstart und vielleicht in Actuators für schöne, serienmäßige Funktionalität zu suchen.

Da ich noch nie zuvor mit Datenbanken gearbeitet habe, ist das ein großes Thema, das es zu behandeln gilt. In mancher Hinsicht kann Spring Data Sie davon abhalten, da das objektbezogene Mapping (kurz ORM) dazu beiträgt, Klasseninstanzen automatisch in Datenbankzeilen umzuwandeln. Aber Sie können auch damit beginnen, mit Konzepten wie Indizes und referenzieller Integrität zu kämpfen, die automatisch in Ihrem Namen ausgeführt werden, wenn Sie Annotationen wie @Id verwenden.

Ich würde mit Ihrem Vorgesetzten über Ihre Schwächen in der Umgebung sprechen, anstatt in der Stille zu kämpfen. Seien Sie proaktiv und finden Sie etwas Datenbank-101-Material und lesen Sie zu dem Thema, wenn Sie können, besonders wenn Sie im Leerlauf sitzen, und respektieren Sie, dass Ihr Vorgesetzter wahrscheinlich eine Reihe anderer Prioritäten jonglieren muss. Ein guter Entwickler ist nie ohne Dinge zu tun, da persönliche Verbesserung eine ständige Hintergrundaufgabe ist und Datenbanken eine hübsche Kernkompetenz ist.

+0

Vielen Dank für den Kommentar, ich arbeite in einer Firma, wo Praktikanten nicht üblich sind, und habe immer meine Hände voll, versuchen herauszufinden, was das alles bedeutet ... Ich denke, dass ich mit der Zeit besser werden werde, da wir alle die gleichen Dinge durchgemacht haben, die ich gerade mache. Es ist nur so, dass ich dachte, dass diese Gemeinde Lesungen anbieten könnte :) Danke nochmal! – Asker