Клиент отправляет тот же оператор SQL -запроса на сервер базы данных. Если вы получаете доступ к базе данных каждый раз, это приведет к снижению производительности.
Так как улучшить?
Mybatis предоставляет нам стратегию для кэша уровня 1
Между открытием и закрытием SQLSession объект SQLSession (фактически исполнитель) будет поддерживать кэшированный объект. При запросе данных сначала посмотрите, существуют ли данные из кэша, и если они существуют, они будут извлечены напрямую. Если его не существует, отправьте SQL -запрос в базу данных, а затем сохраните запрос данных в кэше и верните его в программу.
У этого будет проблема:
Если программа меняет данные базы данных, которые будут проверены во время первого и второго запроса, это приведет к тому, что данные чтения будут неверными, то есть, то есть
Грязное чтение на самом деле является Mybatis, очистит кэш после выполнения метода Commit () в SQLSession. Во второй раз, когда я пойду на запрос, я все еще буду запросить из базы данных.
Вы также можете вручную вызвать метод clearcache () sqlSession, чтобы очистить кэш
Маленькие примеры:
@Test public void testcachelever1 () выбрасывает исключение {sqlsession session = factory.opensession (); Usermapper mapper = session.getmapper (usermapper.class); // Первый запрос должен запросить пользователя с помощью ID 1 user user = mapper.finduserbyid (1); System.out.println (пользователь); // Изменение данных, кэш будет очищен user.setusername ("yyyy"); mapper.updateuser (пользователь); session.commit (); // Второй запрос будет искать user user2 = mapper.finduserbyid (1); System.out.println (user2); session.close (); }вопрос:
Если SQLSession закрыт, кэш будет очищен. Как вы используете кэш для повышения эффективности?
Хорошо, следующая статья представляет вам кэш Mybatis уровня 2.
Выше приведено кэш первого уровня Mybatis, представленный редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!