本文已参与新人创作礼活动,一起开启掘金创造之路。
什么是MyBatis
Mybatis,是主流的ORM(Object Relational Mapping)框架,是一个半自动化框架
Hibernate是一个全自动化ORM框架
- 全自动化:开发者只需要调用相关接口就可以完成操作,Hibernate实现了POJO和数据库表的映射,同时可以生成SQL语句并执行
- 半自动化:框架只提供一部分功能,需要开发者编写SQL语句以及完成数据库数据与POJO的映射
POJO:Plain Old Java Object”“简单java对象”。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。
MyBatis完成了对所有JDBC进行封装,包括参数设置、SQL执行、结果集解析,通过XML配置/注解的方式完成POJO与数据的映射;通过把SQL语句定义在XML中的方式,可以有效降低程序的耦合性;同时MyBatis支持动态SQL
- 优点:框架更加灵活
- 缺点:工作量相对全自动化框架更大,且依赖底层数据库,数据库移植性较差
Mybatis项目初始化
基于Maven构建项目
pom.xml -- 添加依赖
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
</dependencies>
config.xml -- 全局环境配置
数据源、事务管理、Mapper注册、打印SQL、惰性加载、二级缓存…
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "<http://mybatis.org/dtd/mybatis-3-config.dtd>">
<configuration>
</configuration>
SqlSession对象获取
public static SqlSession getSqlSessionByResource(String fileName) {
InputStream inputStream = Test.class.getClassLoader().getResourceAsStream(fileName);
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
return sqlSessionFactory.openSession();
}
MyBatis开源参考文档:mybatis.org/mybatis-3/z…