MyBatis概述

MyBatis是一款优秀的持久层框架,提供自定义SQL、存储过程和高级映射功能,避免了JDBC的繁琐编码。它支持半自动ORM,通过XML或注解配置映射文件,实现Java对象和数据库记录的映射。本文详细介绍了MyBatis的历史、特性、与其他持久层技术的对比,以及MyBatis的工作原理,包括核心对象、配置文件、日志配置、事务管理和数据源。此外,还讲解了MyBatis的增删改查操作、结果映射、动态SQL和缓存机制,以及分页插件的使用。
摘要由CSDN通过智能技术生成

MyBatis入门

MyBatis历史

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

MyBatis是半自动的ORM框架。
半自动:Mybatis将 SQL的定义工作独立出来,让用户自定义,而 SQL的解析,执行等大量工作交由 Mybatis处理执行。
ORM:Object Relational Mapping——对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM框架提供了实体类与数据表的映射关系,通过映射文件的配置,实现对象的持久化。

MyBatis特性

1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。
2. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
4. MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架。

MyBatis和其他持久层技术对比

JDBC:

SQL 夹杂在Java代码中耦合度高
代码重复度高,冗余且效率低下
维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见

Hibernate:

操作简便,开发效率高
全自动框架导致灵活性低下,导致复杂SQL处理需绕开框架,且大量字段的 POJO 进行部分映射时比较困难
反射操作多,数据库性能下降

MyBatis:

轻量级,性能出色
SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
开发效率稍逊于HIbernate,但是完全能够接受

MyBaits工作原理
JDBC核心对象

    DriverManager,数据库驱动管理对象
    Connection,数据库连接对象
    Statement | PrepareStatement ,操作数据库SQL语句对象
    ResultSet,结果集对象

MyBaits核心对象

    1.SqlSession对象,该对象包含了执行SQL语句的所有方法,例如JDBC里面Connection

对象 说明
Executor接口 执行器.统一调度其他三个对象执行对应的SQL
StatementHandler 使用的数据库中的Statement执行操作 相当于字符串拼接
PrepareStatement 使用SQL传参的方式处理
ResultHandler 对最后的结果进行封装

 

   2.Executor接口,将传递过来的参数动态生成SQL语句,负责查询缓存。

   3.MappedStatement对象,该对象负责对SQL封装,用于存储需要映射的SQL语句及参数等信息

   4.ResultHandler对象,用户返回结果集合,封装成最红想要的数据类型,可以自定义返回类型


 

创建工程并导入jar包

1.创建JavaWeb工程

 

2.导入jar包

选中所有jar包右键-build path...

-add to Build Path

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值