开发基础知识 - Mybatis介绍
Introduction
MyBatis的作用:
- 自定义MySQL内容,自由度高
- 对象映射,查询结果会自动转换成 Java 对象
- 代码解耦,SQL 写在 XML 里
使用MyBatis
- 写配置文件
告诉MyBatis数据库怎么连接,SQL映射文件的位置
<configuration>
<environments>
<environment id="dev">
<dataSource type="POOLED">
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
...
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>- 定义SQL和映射关系
<mapper namespace="com.example.UserMapper">
<select id="getUserById" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>- resultType=“User” 表示 SQL 查询结果转换成 User 对象
- #{id} 是 MyBatis 的占位符,会自动替换参数
- 定义接口
public interface UserMapper {
User getUserById(int id);
}- 在service层使用
User user = mapper.getUserById(5);MyBatis原理
MyBatis 利用 Java 的动态代理机制,把你写的 Mapper 接口(如 UserMapper)动态生成一个实现类,这个实现类会根据配置的 XML/注解执行对应的 SQL,并自动把结果映射成对象。
// 这个 SqlSession 是每次数据库操作的“会话对象”
SqlSession session = sqlSessionFactory.openSession();
// 核心:动态生成 Mapper 实现类
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.getUserById(5);开发基础知识 - Mybatis介绍
http://example.com/2025/07/13/SWE-basis/Database/mybatis/