什么是MyBatis
MyBatis 是一款优秀的基于ORM的半自动轻量级持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
什么是ORM
ORM 全称Object/Relation Mapping:表示对象-关系映射的缩写,也就是数据库表和实体类产生映射关系,预期达到操作实体类等等与操作数据库表的效果
半自动指的是什么
半自动指的是我们在使用MyBatis过程中,还需要手动写sql语句,与全自动的Hibernate框架对比,全自动的较为方便,操作实体也就操作了数据库表,但全自动不用写sql语句,也就是失去了优化sql的权利,半自动的效率要比全自动生成的sql效率要高
轻量级指的是什么
轻量级指的是启动的过程中,需要的资源比较少
什么是持久层
持久层就是和数据打交道的一层,也就是dao层。java主要由三层架构另外还有两层,也就是持久层和业务层,表现层主要负责界面展示,接受请求,分发请求。业务层负责粘合表示层和持久层
使用MyBatis前传统jdbc执行查询的过程是怎么样的
加载数据库驱动->创建连接->执行sql->得到返回结果->遍历取数据->结果集封装为实体类->释放资源
传统jdbc与数据库交互存在的一些问题:
1:数据库驱动类,数据库配置信息存在硬编码
2:频繁创建释放数据库连接(数据库连接是非常宝贵的资源,在获取数据库连接时底层要建立tcp链接,完成三段式握手,整个过程是非常耗费资源的)
3:sql语句,设置查询参数,获取结果集参数均存在硬编码问题。
4:手动封装返回结果集,较为繁琐,解析结果需要根据不同结果集写大量相似代码。
解决方式:
1:配置文件(不常改变)
2:连接池(c3p0,dbcp,druid(德鲁伊))
3:配置文件(常改变)
4:反射,内省