MyBatis 是一款优秀的持久层框架,它在Java企业级应用中广泛使用,主要用于简化数据库访问层的开发。本文将详细解析一个MyBatis入门程序,帮助你快速掌握其基本使用方法。
一、环境准备
1. 安装必要的软件
- JDK(Java Development Kit)
- IDE(如IntelliJ IDEA或Eclipse)
- MySQL(或其他关系型数据库)
- Maven(项目构建工具)
二、创建Maven项目
首先,我们需要创建一个新的Maven项目。在 pom.xml
文件中添加MyBatis和其他必要的依赖:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mybatis-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
</project>
三、配置MyBatis
1. 配置MyBatis全局配置文件(mybatis-config.xml)
在 src/main/resources
目录下创建 mybatis-config.xml
文件,配置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>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
</configuration>
2. 配置数据库连接信息(db.properties)
在 src/main/resources
目录下创建 db.properties
文件,配置数据库连接信息。
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_demo
jdbc.username=root
jdbc.password=root
3. 配置MyBatis映射文件(UserMapper.xml)
在 src/main/resources
目录下创建 UserMapper.xml
文件,配置SQL映射。
<?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="selectUser" parameterType="int" resultType="com.example.model.User">
SELECT * FROM users WHERE id = #{id}
</select>
</mapper>
四、创建实体类和Mapper接口
1. 创建实体类
在 src/main/java/com/example/model
目录下创建 User.java
文件,定义用户实体类。
package com.example.model;
public class User {
private int id;
private String name;
private String email;
// Getters and setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
2. 创建Mapper接口
在 src/main/java/com/example/mapper
目录下创建 UserMapper.java
文件,定义Mapper接口。
package com.example.mapper;
import com.example.model.User;
import org.apache.ibatis.annotations.Select;
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User selectUser(int id);
}
五、编写MyBatis工具类
在 src/main/java/com/example/utils
目录下创建 MyBatisUtil.java
文件,编写MyBatis工具类,用于获取SqlSessionFactory。
package com.example.utils;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
六、编写测试类
在 src/main/java/com/example
目录下创建 Main.java
文件,编写测试类,测试MyBatis的功能。
package com.example;
import com.example.mapper.UserMapper;
import com.example.model.User;
import com.example.utils.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
public class Main {
public static void main(String[] args) {
SqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUser(1);
System.out.println("User: " + user.getName() + ", Email: " + user.getEmail());
}
}
}
七、运行程序
确保MySQL数据库中已经创建了 mybatis_demo
数据库和 users
表,并插入了测试数据:
CREATE DATABASE mybatis_demo;
USE mybatis_demo;
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50)
);
INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john.doe@example.com');
运行 Main.java
,如果配置正确,将输出:
User: John Doe, Email: john.doe@example.com
思维导图
graph TB
A[MyBatis入门程序] --> B[环境准备]
A --> C[Maven项目创建]
A --> D[MyBatis配置]
A --> E[实体类和Mapper接口]
A --> F[MyBatis工具类]
A --> G[测试类]
B --> H[安装必要软件]
C --> I[pom.xml配置]
D --> J[mybatis-config.xml]
D --> K[db.properties]
D --> L[UserMapper.xml]
E --> M[User实体类]
E --> N[UserMapper接口]
结论
本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。