MyBatis 是一个优秀的持久层框架,它消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
MyBatis 简介
MyBatis 遵循约定优于配置( Convention Over Configuration)的原则,这意味着大部分时候你不需要写太多的配置代码,框架会根据约定来为你完成大部分工作。这使得 MyBatis 对于新手来说非常友好。
MyBatis 的核心组件
1. SQL 映射文件(XML)
SQL 映射文件是 MyBatis 的核心,它定义了 SQL 语句和数据库表之间的映射关系。在 XML 文件中,你可以定义 SQL 语句、参数映射、结果映射等。
2. 接口(Mapper)
Mapper 接口定义了数据库操作的方法,MyBatis 会根据接口的方法名和参数类型自动生成对应的 SQL 语句。
3. POJO(Plain Old Java Object)
POJO 是 MyBatis 中用来表示数据库表中的记录的 Java 对象。
4. 配置文件(mybatis-config.xml)
配置文件包含了 MyBatis 的全局配置信息,如数据源、事务管理、映射器等。
MyBatis 入门教程
1. 环境搭建
首先,你需要下载 MyBatis 的依赖包,包括 MyBatis 核心包和数据库驱动包。然后,创建一个 Maven 项目,将依赖包添加到项目的 pom.xml 文件中。
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
2. 创建 SQL 映射文件
在项目的 src/main/resources 目录下创建一个 mapper 目录,并在该目录下创建一个 SQL 映射文件,例如 UserMapper.xml。
<?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">
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectById" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
3. 创建 Mapper 接口
在项目的 src/main/java 目录下创建一个 mapper 包,并在该包下创建一个接口,例如 UserMapper.java。
package com.example.mapper;
import com.example.entity.User;
import org.apache.ibatis.annotations.Select;
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User selectById(Integer id);
}
4. 创建配置文件
在项目的 src/main/resources 目录下创建一个 mybatis-config.xml 文件。
<?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"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
5. 使用 MyBatis
在项目的 src/main/java 目录下创建一个 Main.java 文件。
package com.example;
import com.example.mapper.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Main {
public static void main(String[] args) {
try {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build("mybatis-config.xml");
SqlSession session = sqlSessionFactory.openSession();
UserMapper userMapper = session.getMapper(UserMapper.class);
User user = userMapper.selectById(1);
System.out.println(user);
session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行 Main.java 文件,你将看到控制台输出了用户信息。
总结
通过以上教程,你学会了如何使用 MyBatis 进行数据库操作。MyBatis 是一个功能强大的框架,可以帮助你简化数据库操作,提高开发效率。希望这篇指南能帮助你快速上手 MyBatis。
