写在前面:
继续记录SSM三大框架中的MyBatis学习之旅,详细代码笔记可在我的Gitee仓库ssm-learning克隆下载学习使用!
3. MyBatis
3.1 简介
3.1.1 背景
原始JDBC开发存在很多问题,如下:
- 数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能
- SQL语句在代码中硬编码,造成代码维护复杂,实际应用SQL变化可能性很大,而SQL变动又需要改动java代码
- 查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时需要手动将实体数据设置到SQL语句的占位符中
解决方案: - 使用数据库连接池初始化连接资源
- 将SQL语句抽取到xml配置文件中
- 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射
3.1.2 MyBatis
是一个基于Java的持久层框架
优点:
- 内部封装jdbc,开发者只需要关注SQL语句本身,不需要关注驱动加载、创建连接等繁琐过程
- 通过xml或注解来配置statement并通过Java对象和statement中的SQL动态参数映射生成最终执行的SQL语句
- 将SQL语句执行后结果自动映射为java对象返回
- 采用ORM(ObjectRelationMapping)思想解决实体与数据库映射问题,屏蔽jdbc api底层访问细节而不用关注即可完成数据库操作
3.2 入门
3.2.1 MyBatis开发步骤
MyBatis开发简要开发步骤可分为6步,即添加Mybatis坐标,创建数据库User表,编写User实体类,编写UserMapping.xml配置文件,编写SqlMapConfig.xml配置文件以及编写测试类6块。
以下将分别对这些步骤一一做以讲解。
3.2.2 添加Mybatis坐标
在IDEA中新建项目并补全缺失目录后打开pom.xml文件,添加用到的相关资源依赖,如下配置:
<!-- Mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
<!-- Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6