【面试官】Mybatis缓存有什么问题吗?
- 面试官:你说下对MyBatis的理解?
- 面试官:那SqlSession知道吧?
- 面试官:Mybatis的缓存有哪几种?
- 面试官:那Mybatis缓存有什么问题吗?
- 面试官:Mybatis分页插件是怎么实现的?
大家好,我是南哥。
一个Java学习与进阶的领路人,跟着南哥我们一起Java成长。
文章目录
- Mybatis概要
- Mybatis理解
- SqlSession是什么
- Mybatis缓存
- Mybatis缓存分类
- Mybatis缓存局限性
- Mybatis分页插件
1. Mybatis概要
1.1 Mybatis理解
面试官:你说下对MyBatis的理解?
如果没有MyBatis的支持,大家是怎么实现通过程序控制数据库的?首先我们需要为程序引入MySQL连接依赖mysql-connector.jar
,加载数据库JDBC驱动,接着创建数据库连接对象Connection
、SQL语句执行器Statement
,再把SQL语句发送到MySQL执行,最后关闭SQL语句执行器和数据库连接对象。
整个过程是比较繁琐的,这是通过JDBC操作MySQL必走的过程。可实际开发可给不了你那么多时间,如果大家非要用JDBC去写大量的冗余代码也可以,能抗住催你开发进度的压力就行。
这是JDBC操作的过程。
public class JDBCController {
private static final String db_url = "jdbc:mysql://localhost:3306/db_user";
private static final String user = "root";
private static final String password = "root";
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
String sql = "select * from user order by id desc";
try {
connection = DriverManager.getConnection(db_url, user, password);
statement = connection.createStatement();
int result = statement.executeUpdate(sql);
System.out.println(result);
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
}
}
MyBatis能帮助我们什么?早在2002年,MyBatis的前身iBatis诞生,并于2010年改名为MyBatis。该框架引入了SQL映射作为持久层开发的一种方法,也就是说我们不需要把SQL耦合在代码里,只需要把SQL语句单独写在XML配置文件中。
以下是MyBatis编写SQL的写法。SQL的编写已经和程序运行分离开,消除了大量JDBC冗余代码
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Java面试突击 文章被收录于专栏
👉以面试官面试的形式,涵盖了你怒怼大厂面试官、拿下大厂面试所需掌握的核心知识、面试重点! 👉相信一定对你顺利通关面试、拿到理想Offer有所帮助! 👉花费大量精力去制作本专栏,创作不易,各位的支持就是我创作的最大动力!