【MyBatis专栏】(一)MyBatis入门

110 阅读1分钟

本文已参与新人创作礼活动,一起开启掘金创造之路。

什么是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

  • 优点:框架更加灵活
  • 缺点:工作量相对全自动化框架更大,且依赖底层数据库,数据库移植性较差

image.png

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…