2 Stimmen

Java mit Datenbankspeicherung

Ich muss ein Programm schreiben, das Buchungen entgegennimmt, speichert und später wieder abruft. Die Anwendung muss in Java geschrieben werden. Deshalb habe ich mich mit verschiedenen Möglichkeiten beschäftigt, eine Datenbank mit Java zu nutzen.

Ich habe in die Verwendung der JDBC mit der mySQL-Treiber-Datenbank und auch in der javaDB suchen. Was würden Sie empfehlen, dass ich tun, um dieses Programm zu erstellen, hat jemand Erfahrung mit dem Schreiben eines Programms, das eine DB in Java verwendet und könnte mir irgendwelche Tipps geben?

Merci !

3voto

Ich bin sicher, dass jeder Java-Entwickler schon einmal eine Anwendung geschrieben hat, die über JDBC mit einer Datenbank kommuniziert. Viele Leute hören ziemlich schnell auf, rohes JDBC zu verwenden, indem sie entweder etwas wie Frühling JDBC-Wrapper oder ein vollwertiges ORM なんて Winterschlaf . All dies wird das Schreiben der Datenbankschicht ein wenig einfacher machen, aber ich denke, dass Sie generell eine vernünftig Sie müssen verstehen, was unter der Motorhaube vor sich geht, bevor Sie sich mit ihnen beschäftigen.

Also die Frage nach der prozessbegleitenden oder dedizierten Datenbank? Das kommt darauf an. Wie viele Personen werden gleichzeitig auf die Anwendung zugreifen? (Eine prozessinterne Datenbank wäre nutzlos, wenn mehrere Personen auf dieselbe Datenbank zugreifen müssen). Wie viel Kontrolle haben Sie über die Umgebung? (Es ist Zeitverschwendung, eine dedizierte Datenbank vorzuschlagen, wenn Sie sie nicht installieren können). Ist die Anwendung webbasiert oder eine Desktop-Anwendung? (Eine webbasierte Lösung könnte eine prozessinterne Datenbank verwenden und mehreren Benutzern den Zugriff darauf ermöglichen). Wie wichtig sind die Daten? (Bei einer prozessinternen Datenbank ist es unwahrscheinlicher, dass sie dasselbe Maß an Sicherungslösungen bietet wie eine dedizierte Datenbank).

2voto

Pascal Thivent Punkte 548176

In Ihrem Fall würde ich Java6 und Java DB (aka Derby) verwenden. Es ist nicht so, dass die Installation und Verwendung von MySQL kompliziert ist (es ist eigentlich ganz einfach), aber warum sollten Sie das tun, wenn Sie bereits eine fähige Datenbank haben?

Um mit JavaDB anzufangen, schauen Sie sich bitte die Java DB-Referenz Dort gibt es zahlreiche technische Artikel. Achten Sie besonders auf Arbeiten mit der Java DB (Derby) Datenbank - NetBeans IDE 6.5 Tutorial .

Für den Datenzugriff selbst können Sie die Java Persistence API (JPA) verwenden, wie in Erstellen einer benutzerdefinierten Java-Desktop-Datenbankanwendung . Aber ich würde das nicht als Hausaufgabe machen. Stattdessen würde ich mit den Grundlagen beginnen, z. B. mit JDBC, und alles von Hand machen. Du hast es erwähnt und ich denke, es ist eine gute Idee. Schauen Sie doch mal unter Tutorial: Java-Datenbanken mit Derby, Javas eigener Open-Source-Datenbank Es könnte sehr nützlich sein (ich sage nicht, dass der dort gezeigte Code alle Best Practices fördert, aber er ist ziemlich einfach und wird Ihnen den Einstieg erleichtern).

Belasten Sie Ihren Verstand nicht mit fortgeschrittenen Themen wie Connection Pooling, verwenden Sie keine Frameworks wie Hibernate, JPA oder sogar Spring (diese Frameworks wissen, wie man Dinge tut, Sie nicht, und es geht nicht darum, mit Frameworks zu lernen, zumindest nicht im Moment). Halten Sie es einfach und sexy, aber machen Sie es von Hand.

1voto

Adamski Punkte 52945

Ein wirklich einfacher Ansatz ist die Verwendung der JDBC-Klassen von Spring, die eine Vielzahl von Komfortmethoden über Raw JDBC bereitstellen und die Freigabe von Ressourcen automatisch verwalten. Spring bietet auch eine reichhaltige Ausnahmehierarchie, die es ermöglicht, spezifische Aktionen auf der Grundlage spezifischer Fehler durchzuführen (z. B. erneuter Versuch bei Datenbank-Stopp).

Im Gegensatz zu vielen anderen Persistenzschichten versteckt Spring die JDBC-Implementierung nicht unter der Haube (es handelt sich um eine dünne Schicht), so dass Sie bei Bedarf rohes JDBC verwenden können.

Initialisierung

// First create a DataSource corresponding to a single connection.
// Your production application could potentially use a connection pool.
// true == suppress close of underlying connection when close() is called.
DataSource ds = new SingleConnectionDataSource("com.MyDriver", "Database URL", "user", "password", true);

// Now create a SimpleJdbcTemplate passing in the DataSource.  This provides many
// useful utility methods.
SimpleJdbcTemplate tmpl = new SimpleJdbcTemplate(ds);

SQL-Aktualisierung (oder Einfügen)

// Simple example of SQL update.  The resources are automatically release if an exception
// occurs.  SQLExceptions are translated into Spring's rich DataAccessException exception
// hierarchy, allowing different actions to be performed based on the specific type of
// error.
int nRows = tmpl.update("update Foo set Name = ? where Id = ?", "Hello", 5);
assert nRows == 1;

SQL-Abfrage

// Example of SQL query using ParameterizedRowMapper to translate each row of the
// ResultSet into a Person object.
tmpl.query("select * from Person", new ParameterizedRowMapper<Person>() {
  Person mapRow(ResultSet rs, int rowNum) {
    return new Person(rs.getString("FirstName"), rs.getString("LastName"));
  }
});

1voto

Bill the Lizard Punkte 384619

Sun hat zwei JDBC-Tutorials online, die Sie vielleicht nützlich finden, JDBC-Einführung y JDBC-Grundlagen . Diese sind Teil einer viel größeren Serie von Java-Tutorials die eine Menge guter Informationen enthalten. Sie sind in der Regel der erste Ort, an dem ich nachschaue, wenn ich auf etwas stoße, von dem ich nicht weiß, wie man es in Java macht.

0voto

JuanZe Punkte 7773

Sehen Sie sich diese Beispiele an: http://www.roseindia.net/jdbc/jdbc-mysql/ . Viele Codebeispiele zur Verwendung von JDBC mit MySQL.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X