Mybatis基础

Mybatis作为一种ORM解决方案,在一开始接触Java Web时就使用它,但对它的原理并没有过多的了解。今天就来好好了解下它的基本原理吧。

MyBatis的基本工作原理就是:先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结果封装成Java类。因此要了解mybatis就需要先了解JDBC。

JDBC简介

Java数据库连接 Java Database Connectivity,简称JDBC,它是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是一类接口,制定了统一访问各类关系数据库的标准接口。如果没有JDBC这个接口标准的存在,程序员面对各类数据库的操作将会变得十分复杂,并令人抓狂。

JDBC是接口,驱动是接口的实现类,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。

JDBC开发步骤

基本的步骤包括了驱动加载,创建数据库连接,执行sql并获得返回,关闭连接这几个步骤。下面具体介绍:

  1. 注册和加载数据库驱动:通过Class.forName方法反射获得驱动,加载成功则将驱动注册到DriverManager;否则抛出异常。
  2. 获得数据库连接:调用DriverManager的静态方法getConnection获得Connection对象,需要传入url,user和password。
  3. 获取语句执行对象:
    1. 预设sql:调用Connection对象的createStatement方法获取执行语句Statement对象;
    2. 动态sql:或者调用Connection对象的preparedStatement方法获取PreparedStatement对象,并调用setString动态赋值。
       String sql = "insert into user(username, sex, address) values(?,?,?)";
       PreparedStatement ps = conn.preparedStatement(sql);
       ps.setString(1, "张三"); //为第一个问号赋值
      
  4. 执行sql语句:调用execute方法,比如对于update,传入执行的语句String对象并调用executeUpdate方法;或对于PreparedStatement直接调用preparedStatement对象的executeUpdate 方法。
  5. 关闭连接:调用Connection对象的close方法。

Mybatis核心组件

Mybatis流程

参考: