分享

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

 刘子湙 2020-11-12

在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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多