Cure Java -код имитирует принцип кеша Hibernate Level 1, который прост и прост в понимании.
Кода -копия выглядит следующим образом:
импортировать java.util.arraylist;
импортировать java.util.hashmap;
импортировать java.util.list;
импортировать java.util.map;
открытый класс LevelOneCache {
// Этот объект используется для моделирования кеша Hibernate Level 1
Частная статическая карта <Integer, Student> stus = new Hashmap <Integer, Student> ();
public static void main (string [] args) {
GetStudent (1);
GetStudent (1);
GetStudent (1);
GetStudent (2);
GetStudent (2);
}
Public Static Student GetStudent (INTEGER ID) {
if (stus.containskey (id)) {
System.out.println ("Извлекать данные из кэша");
вернуть stus.get (id);
} еще {
System.out.println ("Извлекать данные из базы данных");
Студент s = mydb.getStudentbyId (id);
// Поместите данные, полученные из базы данных в кэш
stus.put (id, s);
возврат S;
}
}
}
// Моделируют базу данных
класс mydb {
Частный статический список <tlade> list = new Arraylist <tlood> ();
статический {
Студент S1 = новый студент ();
s1.setName ("name1");
S1.setid (1);
Студент S2 = новый студент ();
s2.setname ("name2");
s2.setid (2);
Студент S3 = новый студент ();
s3.setname ("name3");
s3.setid (3);
// Инициализировать базу данных
list.add (s1);
list.add (s2);
list.add (s3);
}
// предоставление методов публичного запроса в базе данных
Public Static Student GetStudentById (INTEGER ID) {
для (Студент S: список) {
if (s.getid (). equals (id)) {
возврат S;
}
}
// Если запрос не может быть найден, возврат пуст
вернуть ноль;
}
}
// объект домена
классный студент {
частное целочисленное идентификатор;
Приватное название строки;
public integer getId () {
вернуть идентификатор;
}
public void setId (INTEGER ID) {
this.id = id;
}
public String getName () {
вернуть имя;
}
public void setName (string name) {
this.name = name;
}
}