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