MyBatis 框架基础介绍
一、简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程,可以使用简单的 XML 或注解来进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
二、特点
- 简单易用:MyBatis 提供了一个非常简洁的 API 接口,易于学习和上手。
- 灵活:允许在映射语句中使用动态 SQL。
- 强大:支持高级关联映射、延迟加载等特性。
- 与原生 SQL 的兼容性:MyBatis 可以直接编写原生态的 SQL 查询语句,灵活度高。
- 良好的事务管理:可以集成到大多数基于 JDBC 的事务管理器之中,简化事务管理的编码工作。
- 插件机制:通过插件可以对 MyBatis 的行为进行扩展,而不必改变其配置和代码。
三、安装与配置
3.1 添加依赖
在 Maven 项目中添加 MyBatis 的依赖:
xml
深色版本
1<dependency>
2 <groupId>org.mybatis</groupId>
3 <artifactId>mybatis</artifactId>
4 <version>3.x</version>
5</dependency>
3.2 配置文件
创建 mybatis-config.xml
文件,并配置数据源和映射文件的位置:
xml
深色版本
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE configuration
3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
5<configuration>
6 <environments default="development">
7 <environment id="development">
8 <transactionManager type="JDBC"/>
9 <dataSource type="POOLED">
10 <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
11 <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC"/>
12 <property name="username" value="root"/>
13 <property name="password" value="password"/>
14 </dataSource>
15 </environment>
16 </environments>
17 <mappers>
18 <mapper resource="com/example/mapper/UserMapper.xml"/>
19 </mappers>
20</configuration>
3.3 映射文件
创建映射文件 UserMapper.xml
,定义 SQL 语句和映射规则:
xml
深色版本
1<?xml version="1.0" encoding="UTF-8" ?>
2<!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5<mapper namespace="com.example.mapper.UserMapper">
6 <select id="selectAllUsers" resultType="com.example.model.User">
7 SELECT * FROM users
8 </select>
9</mapper>
四、基本使用
4.1 创建会话
java
深色版本
1SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
2SqlSession session = sqlSessionFactory.openSession();
4.2 执行查询
java
深色版本
1List<User> users = session.selectList("com.example.mapper.UserMapper.selectAllUsers");
4.3 关闭会话
java
深色版本
1session.close();
五、总结
MyBatis 是一款功能强大的 ORM(Object Relational Mapping)框架,它使得开发者能够更加灵活地处理数据库操作,同时提供了丰富的功能来支持复杂的业务逻辑。由于其简单易用的特点,MyBatis 成为了很多开发者的首选框架之一。