MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
Mybatis和JDBC的对比
通过上面的介绍,我们知道 MyBatis 是来和数据库打交道。那么在这之前,我们是使用 JDBC 来对数据库进行增删改查等一系列操作的,而我们之所以会放弃使用 JDBC,转而使用 MyBatis 框架,这是为什么呢?或者说使用 MyBatis 对比 JDBC 有什么好处?
数据类型转换 => 交给框架
数据校验 => 交给框架
将增删改查集中管理 => 交给框架
异常的统一处理
简化jdbc => 交给框架
使用框架组合各种技术
上面的这些问题我们都可以规避掉,将它们交给框架去管理;
而这个框架就是Mybatis,那我们就来学习一下Mybatis;
Mybatis使用
使用步骤:
- 添加依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
- 添加配置文件 mybatis-config.xml
用这个配置文件来告诉 mybatis 如何连接数据库
告诉 mybatis 到哪里去找映射关系
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!-- 配置了 mybatis 连接数据库的信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--向 mybatis-config.xml 配置文件中注册 StudentMapper.xml 文件 -->
<mappers>
<!-- 指定映射文件的位置 包名+文件名(文件路径)-->
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
-
提供一个 映射文件
用来管理 sql 语句,描述 sql 语句与数据库表之间的映射关系 -
调用 mybatis api 使用映射文件真正执行增删改查
Configuration 对应 mybatis-config.xml
SqlSessionFactory 用来创建 SqlSession 的
SqlSession (接口)
.insert
.update
.delete
.selectOne
.selectList
Mybatis 映射文件(重点)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
&