一 ,MyBatis概述
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
- mybatis是一个持久层框架,封装了jdbc操作的很多细节,使开发者只需要关注sql本身,而无须关注注册驱动、创建连接等过程
- 使用了
ORM(Object Relational Mapping对象关系映射)
,简单的说,就是把数据库表和实体类相关联,使我们操作实体类就可以达到操作数据库的表的效果
JDBC编程
@Test
public void testJdbc() {
Connection connection =null;
PreparedStatement statement=null;
ResultSet resultSet=null;
try{
//加载驱动
Class<?> aClass = Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mybatis?serverTimezone=UTC&characterEncoding=utf-8&serverTimezone=Asia/Shanghai",
"root", "123@qwe");
//创建statement
statement = connection.prepareStatement("select * from team");
//执行查询
resultSet = statement.executeQuery();
//遍历结果
List<Team> teams=new ArrayList<>();
while (resultSet.next()){
Team team = new Team();
team.setTeamId(resultSet.getInt("teamId"));
team.setTeamName(resultSet.getString("teamName"));
team.setLocation(resultSet.getString("location"));
team.setCreateTime(resultSet.getDate("createTime"));
teams.add(team);
}
teams.forEach(team -> {
System.out.println(team);
});
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(connection!=null) connection.close();
if(statement!=null) statement.close();
if(resultSet!=null) resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
二,配置加载的核心类
2.1 建造器三个核心类
在 MyBatis 中负责加载配置文件的核心类有 基础支撑层,数据处理层,接口层
类图如下:
2.2 核心配置文件与加载机制
三,MyBatis的主要成员
- Resourcs—MyBatis中的一个类, 负责读取主配置文件
- SqlSessionFactoryBuilder ——创建SqlSessionFactory对象
- SqlSessionFactory——重量级对象, 程序创建一个对象耗时比较长,使用资源比较多。在整个项目中,有一个就够用了。
- SqlSessionFactory是一个接口,接口实现类:DefaultSqlSessionFactory
- SqlSessionFactory作用: 获取SqlSession对象。
- openSession()方法说明: