【MyBatis入门到入土精讲】MyBatis介绍

在web应用中,与数据库的交互是永恒的课题。回顾过去,在ORM框架出现之前,我们采用原始的JDBC编程与数据库打交道:从数据库获取数据,再将数据映射成对象或者将对象映射为表的字段,将用户想要保存的信息存储到数据库中

传统的JDBC与数据库的交互

这个过程复杂且耗时:加载JDBC驱动、建立并获取数据库连接、创建JdbcStatement对象、设置SQL语句的传入参数、执行SQL语句并获取查询结果、对查询结果进行转换处理并将处理结果返回、释放资源(关闭连接、关闭statement)等
来段代码,直观感受一下。
    import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * @author Evan */public class JDBCTest {    public static void main(String[] args) throws Exception {        Connection connection = null;        PreparedStatement prepareStatement = null;        ResultSet rs = null;        try {            // 加载驱动            Class.forName("com.mysql.jdbc.Driver");            // 获取连接            String url = "jdbc:mysql://127.0.0.1:3306/ssmdemo";            String user = "root";            String password = "123456";            connection = DriverManager.getConnection(url, user, password);            // 获取statement,preparedStatement            String sql = "select * from tb_user where id=?";            prepareStatement = connection.prepareStatement(sql);            // 设置参数            prepareStatement.setLong(1, 1l);            // 执行查询            rs = prepareStatement.executeQuery();            // 处理结果集            while (rs.next()) {                System.out.println(rs.getString("userName"));                System.out.println(rs.getString("name"));                System.out.println(rs.getInt("age"));                System.out.println(rs.getDate("birthday"));            }        } finally {            // 关闭连接,释放资源            if (rs != null) {                rs.close();            }            if (prepareStatement != null) {                prepareStatement.close();            }            if (connection != null) {                connection.close();            }        }    }}
    看着有没有头疼,不仅繁琐,而且如果我们一个功能中有5个查询,是不是要写5次这样的代码?耦合度太高!

    其实,我们要做的事情很简单,就是从数据库获取数据,再映射到对象,然后展示给用户。既然如此,是否可以将这个过程封装起来,然后给业务开发人员调用呢?答案是肯定的。

    ORM框架的出现

    聪明的程序员为了偷懒什么事都干得出来,在JDBC编程持续短暂时间之后,ORM框架出现了。ORM全称Object Relational Mapping,即对象与关系映射,它采用元数据来描述对象与关系的映射,元数据一般指的就是xml格式文件。

    有了ORM框架,开发人员只要指定了持久化类与数据库表的映射关系,ORM框架运行时就能根据映射文件的信息,将对象持久化到数据库中。

    是不是变得简单了很多?

    现如今ORM框架代表有:Hibernate、MyBatis 、JFinal等。

    什么是mybatis

    MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和Java对象为数据库中的记录。

    这篇文章主要从Jdbc的知识来了解MyBatis 技术背景,我们也可以从Jdbc入手类比初步了解MyBatis 的底层原理,希望能为大家在学习道路上有所启发。

    所有文章首发在公众号【架构师修炼指南】。

    (0)

    相关推荐