2、MyBatis概述

学习资源:动力节点《2020最新MyBatis教程【IDEA版】-MyBatis从入门到精通》



1、JDBC 编程

1.1、传统 JDBC 的使用

public void findStudent() {
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    try {
        //注册 mysql 驱动
        Class.forName("com.mysql.jdbc.Driver");
        //连接数据的基本信息 url , username, password
        String url = "jdbc:mysql://localhost:3306/springdb";
        String username = "root";
        String password = "123456";
        //创建连接对象
        conn = DriverManager.getConnection(url, username, password);
        //保存查询结果
        List<Student> stuList = new ArrayList<>();
        //创建 Statement, 用来执行 sql 语句
        stmt = conn.createStatement();
        //执行查询,创建记录集,
        rs = stmt.executeQuery("select * from student");
        while (rs.next()) {
            Student stu = new Student();
            stu.setId(rs.getInt("id"));
            stu.setName(rs.getString("name"));
            stu.setAge(rs.getInt("age"));
            //从数据库取出数据转为 Student 对象,封装到 List 集合
            stuList.add(stu);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            //关闭资源
            if (rs != null) {
            rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

1.2、JDBC缺陷

  1. 代码比较多,开发效率低
  2. 需要关注 Connection ,Statement, ResultSet 对象创建和销毁
  3. 对 ResultSet 查询的结果,需要自己封装为 List
  4. 重复的代码比较多些
  5. 业务代码和数据库的操作混在一起

2、MyBatis 框架

2.1、MyBatis 框架概述

MyBatis 是 SQL Mapper Framework for Java(sql映射框架)。

MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。 2013 年 11 月迁移到 Github。iBATIS 一词来源于“internet”和“abatis”的组合,是一个基于 Java 的持久层框架。 iBATIS 提供的持久层框架包括 SQL MapsData Access Objects(DAOs)。

  • SQL Maps:sql映射
    可以把数据库表中的一行数据映射为 一个java对象,操作这个对象,就相当于操作表中的数据
  • Data Access Objects:数据访问 , 对数据库执行增删改查

MyBatis 是一个 sql 映射框架,提供的数据库的操作能力。增强的JDBC,使用 MyBatis 让开发人员集中精神写 sql 就可以了,不必关心 Connection、Statement、ResultSet 的创建,销毁,sql的执行。


2.2、MyBatis的优势

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件就可以了,易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供xml标签,支持编写动态sql

2.3、使用者的任务

使用 MyBatis 的开发人员只需要提供 sql 语句交由 MyBatis处理,得到 List 集合或 java 对象(即表中的数据),最后进行自己的逻辑处理即可。

原文地址:https://www.cnblogs.com/sout-ch233/p/13608285.html