
(1)MyBatis 配置文件:
SqlMapConfig.xml: 此文件作为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息。
mapper.xml: 即 sql 映射文件,文件中配置了操作数据库的 sql 语句。此文件需要在 SqlMapConfig.xml 中加载。
(2)通过 MyBatis 环境等配置信息构造 SqlSessionFactory, 即会话工厂。
(3)由会话工厂创建 sqlSession ,即会话,操作数据库需要通过 sqlSession 进行。
(4)MyBatis 底层自定义了 Executor 执行器接口操作数据库,Executor 接口有两个实现,一个是基本执行器、一个是缓存执行器。
(5)Mapped Statement 是 MyBatis 一个底层封装对象,它包装了 MyBatis 配置信息及 sql 映射信息等。mapper.xml 文件中一个 sql 对应一个 Mapped Statement 对象,sql 的 id 即是 Mapped statement 的 id。
(6)Mapped Statement 对 sql 执行输入参数进行定义,包括 HashMap、基本类型、pojo,Executor 通过Mapped Statement 在执行 sql 前将输入的 Java 对象映射至 sql 中,输入参数映射就是 jdbc 编程中对preparedStatement 设置参数。
(7)Mapped Statement 对 sql 执行输出结果进行定义,包括 HashMap、基本类型、pojo,Executor通过Mapped Statement 在执行 sql 后将输出结果映射至 Java 对象中,输出结果映射过程相当于 jdbc 编程中对结果的解析处理过程。
3、传统的 JDBC 编程问题总结
(1)JDBC 编程步骤
1)加载数据库驱动
2)创建并获取数据库链接
3)创建 jdbcstatement 对象
4)设置 sql 语句
5)设置 sql 语句中的参数(使用preparedStatement)
6)通过 statement 执行 sql 并获取结果
7)对 sql 执行结果进行解析处理
8)释放资源(resultSet、preparedstatement、connection)
(2)JDBC 程序实例
public class Test {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 通过驱动管理类获取数据库链接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root");
// 定义sql语句 ?表示占位符
String sql = "select * from user where username = ?";
// 获取预处理statement
preparedStatement = connection.prepareStatement(sql);
// 设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
preparedStatement.setString(1, "王五");
// 向数据库发出sql执行查询,查询出结果集
resultSet = preparedStatement.executeQuery();
// 遍历查询结果集
while (resultSet.next()) {
System.out.println(resultSet.getString("id") + " " + resultSet.getString("username"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放资源
## 总结
互联网大厂比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考。无论是哪家公司,都很重视高并发高可用技术,重视基础,所以千万别小看任何知识。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
**另外想要面试题及答案的小伙伴请[点击这里自行领取](https://gitee.com/vip204888/java-p7),本人还整理收藏了2021年多家公司面试知识点以及各种技术点整理 **
**下面有部分截图希望能对大家有所帮助。**

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/140413.html