El cliente envía la misma declaración de consulta SQL al servidor de la base de datos. Si accede a la base de datos cada vez, conducirá a una degradación del rendimiento.
Entonces, ¿cómo mejorar?
mybatis nos proporciona una estrategia para el caché de nivel 1
Entre la apertura y el cierre de una SQLSession, el objeto SQLSession (en realidad un ejecutor) mantendrá un objeto en caché. Al consultar datos, primero busque si los datos existe desde el caché, y si existe, se recuperará directamente. Si no existe, envíe una consulta SQL a la base de datos y luego almacene los datos consultados en el caché y devuélvalos al programa.
Esto tendrá un problema:
Si un programa cambia los datos de la base de datos que se verificarán durante la primera y segunda consulta, hará que los datos de lectura sean incorrectos, es decir,
La lectura sucia es en realidad mybatis borrará el caché después de ejecutar el método Commit () en SQLSession. La segunda vez que voy a consulta, todavía la consulta desde la base de datos.
También puede llamar manualmente el método ClearCache () de SQLSession para borrar el caché
Pequeños ejemplos:
@Test public void testCachelever1 () lanza la excepción {sqlsession session = factory.opensession (); Usermapper mapper = session.getMapper (usermapper.class); // La primera solicitud es consultar al usuario con ID 1 usuario user = mapper.finduserById (1); System.out.println (usuario); // Cambiar datos, el caché se borrará user.setUsername ("aaa"); mapper.updateuser (usuario); session.commit (); // La segunda consulta buscará usuario user2 = mApper.FinduserById (1); System.out.println (user2); session.close (); }pregunta:
Si SQLSession está cerrado, el caché se borrará. ¿Cómo se usa caché para mejorar la eficiencia?
Bien, el siguiente artículo te presenta el caché de MyBatis Nivel 2.
Lo anterior es el caché de primer nivel mybatis introducido por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!