欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

mybatis学习笔记(1)-mybatis概述,mybatis-mybatis

来源: javaer 分享于  点击 46825 次 点评:242

mybatis学习笔记(1)-mybatis概述,mybatis-mybatis


JDBC介绍

在JavaWeb开发中,必须要面对的一个问题就是用Java访问数据库,对此Java提供了一套API名叫JDBC(Java Database Connectivity),它是Java访问数据库的一种规范。通过使用JDBC中的接口和类,可以使Java客户端程序访问数据库,比如建立数据库连接、执行SQL语句进行数据的存取操作。

Java使用JDBC访问数据库的步骤为:

按照以上步骤,编写一个JDBC的入门程序如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/** * Created by CrowHawk on 17/3/15. */
public class JdbcTest {
    public static void main(String[] args) throws Exception{
        String url = "jdbc:mysql://localhost:3306/OrderForm";
        String username = "root";
        String password = "wyj";
        Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
        Connection conn = DriverManager.getConnection(url, username, password);////通过驱动管理类获取数据库链接
        Statement statement = conn.createStatement();//获取用于向数据库发送sql语句的statement
        String sql = "select * from user";//定义sql语句
        ResultSet resultSet = statement.executeQuery(sql);//向数据库发sql,并获取结果集
        while (resultSet.next()){//取出结果集的数据
            System.out.println("id = " + resultSet.getObject("id"));
            System.out.println("username = " + resultSet.getObject("username"));
            System.out.println("birthday = " + resultSet.getObject("birthday"));
            System.out.println("sex = " + resultSet.getObject("sex"));
            System.out.println("address = " + resultSet.getObject("address"));
        }
        //释放资源
        resultSet.close();
        statement.close();
        conn.close();
    }
}

但是如果要用原生JDBC开发JavaWeb项目,则会存在很多问题:

为了解决这些问题,可以提出如下设想:

而MyBatis则恰好实现了这些设想。

Mybatis

Mybatis是什么

MyBatis 本是 apache 的一个开源项目 iBatis , 2010年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及对结果集的检索封装。MyBatis 可以对配置和原生 Map 使用简单的 XML 或注解,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

MyBatis 的主要思想是将程序中的大量 SQL 语句抽取出来,配置在配置文件中,以实现 SQL 的灵活配置。

MyBatis 并不完全是一种 ORM 框架,它的设计思想和 ORM 相似,只是它允许直接编写 SQL 语句,使得数据库访问更加灵活。因此,准确地说,MyBatis 提供了一种“半自动化”的 ORM 实现,是一种 “SQL Mapping” 框架。

功能架构

Mybatis的功能架构分为三层:

  • API接口层:提供给外部使用的接口 API,开发人员通过这些本地 API
    来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
  • 数据处理层:负责具体的 SQL 查找、SQL 解析、SQL 执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
  • 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件,为上层的数据处理层提供最基础的支撑。

框架结构

具体流程如下:

相关文章

    暂无相关文章
相关栏目:

用户点评