MyBatis入门实例详解:XML配置与使用

下载需积分: 50 | 7Z格式 | 1.26MB | 更新于2025-02-14 | 80 浏览量 | 3 下载量 举报
收藏
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 在理解 MyBatis 的入门实例之前,首先需要了解几个关键概念: 1. SqlSessionFactory:这是一个单个数据库映射关系经过编译后的内存镜像,SqlSessionFactory 是线程安全的,可以通过 SqlSessionFactoryBuilder 获得。 2. SqlSession:这是与数据库交互的会话,它包含很多方法来执行映射的 SQL 语句。每一个线程都应该有它自己的 SqlSession 实例。 3. Mapper:这是一个接口,定义了特定的数据库操作方法。 4. Statement ID:每一个 MyBatis SQL 映射文件中的 statement 的唯一标识。 5. 映射文件:MyBatis 的核心,包含了 SQL 语句、输入输出映射以及自定义的 SQL 参数。 以下是一个简单的 MyBatis 入门实例,使用 XML 文件配置方式: 1. 添加 MyBatis 相关依赖到项目中(以 Maven 为例): ```xml <!-- MyBatis 核心库 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.x.x</version> </dependency> <!-- MySQL 连接库 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.x.x</version> </dependency> ``` 2. 创建数据库和表: ```sql CREATE DATABASE mybatis_test01; USE mybatis_test01; CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `age` int DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; ``` 3. 编写 MyBatis 的配置文件(mybatis-config.xml): ```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/mybatis_test01"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="mappers/UserMapper.xml"/> </mappers> </configuration> ``` 4. 创建 UserMapper.xml 映射文件: ```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"> <!-- 定义获取用户信息的SQL语句 --> <select id="selectUserById" parameterType="int" resultType="com.example.domain.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 5. 创建 User 实体类: ```java public class User { private Integer id; private String name; private Integer age; // getter 和 setter 方法 } ``` 6. 创建 UserMapper 接口: ```java public interface UserMapper { User selectUserById(Integer id); } ``` 7. 编写测试类: ```java public class MyBatisTest { public static void main(String[] args) throws IOException { // 加载 MyBatis 配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 获取 SqlSessionFactory 实例 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 获取 SqlSession SqlSession session = sqlSessionFactory.openSession(); try { // 获取 UserMapper 的代理实例 UserMapper userMapper = session.getMapper(UserMapper.class); // 调用方法获取用户信息 User user = userMapper.selectUserById(1); System.out.println(user.getName()); } finally { // 关闭 SqlSession session.close(); } } } ``` 以上步骤构成了一个简单的 MyBatis 入门实例,通过该实例可以了解如何配置 MyBatis 环境、如何编写映射文件以及如何通过接口编程的方式使用 MyBatis 进行数据库操作。在实际开发中,根据项目的需要,MyBatis 可以进行更加复杂的配置和使用。

相关推荐