Le code Java pur simule le principe du cache de niveau 1 hibernate, ce qui est simple et facile à comprendre.
La copie de code est la suivante:
import java.util.arraylist;
import java.util.hashmap;
Importer java.util.list;
importation java.util.map;
classe publique niveononECache {
// Cet objet est utilisé pour simuler le cache de niveau 1 hibernate
Carte statique privée <Integer, Student> STUS = new HashMap <Integer, Student> ();
public static void main (String [] args) {
getStudent (1);
getStudent (1);
getStudent (1);
getStudent (2);
getStudent (2);
}
Étudiant statique public GetStudent (ID entier) {
if (stus.containsKey (id)) {
System.out.println ("Réfléchissez aux données de Cache");
return SUS.get (id);
} autre {
System.out.println ("Répondez les données de la base de données");
Student s = mydb.getStudentById (id);
// place les données obtenues à partir de la base de données dans le cache
STUS.PUT (ID, S);
retour s;
}
}
}
// Simuler la base de données
classe MyDB {
Liste statique privée <Student> list = new ArrayList <Student> ();
statique{
Student S1 = New Student ();
s1.setName ("name1");
s1.setid (1);
Student S2 = New Student ();
s2.setName ("name2");
S2.SetId (2);
Student S3 = New Student ();
S3.SetName ("name3");
S3.SetId (3);
// initialise la base de données
list.add (s1);
list.add (s2);
list.add (S3);
}
// Fournir des méthodes de requête publique dans la base de données
Étudiant statique public GetStudentById (ID entier) {
pour (Student S: List) {
if (s.getId (). equals (id)) {
retour s;
}
}
// Si la requête ne peut être trouvée, le retour vide
retourner null;
}
}
// objet de domaine
classe étudiante {
ID entier privé;
nom de chaîne privé;
public entier getID () {
Retour ID;
}
public void setid (ID entier) {
this.id = id;
}
public String getName () {
nom de retour;
}
public void setName (nom de chaîne) {
this.name = name;
}
}