Der reine Java -Code simuliert das Cache -Prinzip der Hibernate Level 1, das einfach und leicht zu verstehen ist.
Die Codekopie lautet wie folgt:
Import Java.util.ArrayList;
import Java.util.hashMap;
importieren java.util.list;
import Java.util.map;
public class LevelOnecache {
// Dieses Objekt wird verwendet, um den Hibernate Level -1 -Cache zu simulieren
private statische Karte <Integer, Student> STUS = New HashMap <Integer, Student> ();
public static void main (String [] args) {
GetStudent (1);
GetStudent (1);
GetStudent (1);
GetStudent (2);
GetStudent (2);
}
public statischer Student getStudent (Ganzzahl -ID) {
if (stus.containesKey (id)) {
System.out.println ("Daten aus dem Cache abrufen");
return stus.get (id);
} anders {
System.out.println ("Daten aus der Datenbank abrufen");
Schüler S = mydb.getstudentbyId (ID);
// Legen Sie die von der Datenbank erhaltenen Daten in den Cache ein
stus.put (id, s);
Rückkehr s;
}
}
}
// Datenbank simulieren
Klasse mydb {
private statische Liste <Student> list = new ArrayList <Student> ();
statisch{
Schüler S1 = neuer Schüler ();
S1.SetName ("name1");
S1.Setid (1);
Schüler S2 = neuer Schüler ();
s2.setName ("name2");
s2.setid (2);
Schüler S3 = neuer Schüler ();
s3.setName ("name3");
s3.setid (3);
// Initialisieren Sie die Datenbank
list.add (S1);
list.add (s2);
list.add (S3);
}
// Bereitstellung öffentlicher Query -Methoden in der Datenbank
public statischer Student GetstudentbyId (Ganzzahl -ID) {
für (Schüler S: Liste) {
if (S.GetId (). Equals (id)) {
Rückkehr s;
}
}
// Wenn die Abfrage nicht gefunden werden kann, ist die Rückgabe leer
null zurückkehren;
}
}
// Domänenobjekt
Klassenstudent {
private Ganzzahl -ID;
privater Zeichenfolge Name;
public Ganzzahl getid () {
Rückgabe -ID;
}
public void setid (Integer id) {
this.id = id;
}
public String getName () {
Rückgabename;
}
public void setName (String Name) {
this.name = name;
}
}