1、 初识Mybatis
说白了 Mybatis:操作数据库,对JDBC的封装
JavaSE操作数据都存放在内存中(断电就丢失),所以要通过JDBC操作数据库实现长期保存
借助Servlet实现HTTP请求,(Servlet本质上就是一个能处理HTTP请求的特殊的Java类 ;从Java类角度看,它能调用Service方法,作为web程序的一面能处理HTTP请求)
下载地址:GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for Java
1.1、 Mybatis特性
- MyBatis支持定制化SQL、存储过程以及高级映射
- MyBatis避免了几乎所有的JDBC代码和手动设置参数以及结果集解析操作
- MyBatis可以使用简单的XML或注解实现配置和原始映射;将接口和Java的POJO(Plain Ordinary Java Object,普通的Java对象)映射成数据库中的记录
- Mybatis是一个半自动的ORM(Object Relation Mapping)框架
1.2、 和其它持久化层技术对比
-
JDBC
- SQL 夹杂在Java代码中耦合度高,导致硬编码内伤
- 维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见
- 代码冗长,开发效率低
-
Hibernate 和 JPA
- 操作简便,开发效率高
- 程序中的长难复杂 SQL 需要绕过框架
- 内部自动生产的 SQL,不容易做特殊优化
- 基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。
- 反射操作太多,导致数据库性能下降
-
MyBatis
- 轻量级,性能出色
- SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
- 开发效率稍逊于HIbernate,但是完全能够接收
2、 Mybatis 之 HelloWorld
2.1、物理建模(建库)
CREATE DATABASE `mybatis-example`;
USE `mybatis-example`;
CREATE TABLE `t_emp`(
emp_id INT AUTO_INCREMENT,
emp_name CHAR(100),
emp_salary DOUBLE(10