MyBatis入门实例详解:XML配置与使用
下载需积分: 50 | 7Z格式 | 1.26MB |
更新于2025-02-14
| 80 浏览量 | 举报
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 可以进行更加复杂的配置和使用。
相关推荐










MjCreator
- 粉丝: 4
最新资源
- Delphi/C++ Builder自动升级组件AutoUpgrader Pro发布
- 掌握20余种Adobe After Effects文字特效
- J2ME平台手机游戏动画编辑器的功能与应用
- Java实现的磁盘目录树浏览功能
- 城市公交查询系统设计与实现
- Java实现的自动完成控件开发教程
- 全面解析道氏理论:投资原理与实践应用指南
- C#开发中实现屏幕锁定功能
- 《wxPython in Action》:Python图形界面开发实战
- 局域网网络安全利器:ARP终结者工具介绍
- C#多线程经典教程详解
- 微机原理课程设计:汽车转弯灯控制系统实现
- C++字符串操作程序的实现与应用
- VisualC++ MFC基础教程与控件使用指南
- 游戏数据遍历工具:超完美的通用地址查找器
- K-means关键字提取与cvSIFT算法的结合应用