# mybatis/mybatis-3

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mybatis-mybatis-3).**

20,385 stars · 12,973 forks · Java · apache-2.0

## Links

- GitHub: https://github.com/mybatis/mybatis-3
- Homepage: http://mybatis.github.io/mybatis-3/
- awesome-repositories: https://awesome-repositories.com/repository/mybatis-mybatis-3.md

## Topics

`java` `mybatis` `sql`

## Description

MyBatis is a Java persistence framework that functions as a database query mapper and object-relational mapping tool. It decouples SQL statements from application code, allowing developers to manage database interactions by mapping Java objects to relational database records.

The framework provides a centralized approach to SQL query management, enabling the use of either XML configuration files or annotations to define persistence logic. It automates the transformation of database result sets into structured objects, which eliminates the need for manual data conversion and reduces repetitive boilerplate code.

Beyond basic mapping, the system supports dynamic SQL generation to construct flexible queries based on runtime parameters. It also includes a plugin architecture for intercepting execution flows, pluggable type handlers for custom data conversion, and proxy-based interface binding to link method calls directly to SQL statements.

## Tags

### Data & Databases

- [Object-Relational Mapping](https://awesome-repositories.com/f/data-databases/object-relational-mapping.md) — Functions as an object-relational mapping tool that automates data transformation into structured Java objects. ([source](https://mybatis.org/mybatis-3))
- [Database Query Interfaces](https://awesome-repositories.com/f/data-databases/database-query-interfaces.md) — Acts as a database query mapper that decouples SQL statements from application code.
- [SQL Templating Engines](https://awesome-repositories.com/f/data-databases/data-querying/sql-templating-engines.md) — Provides a template engine for constructing dynamic SQL queries based on runtime parameters.
- [SQL Query Execution](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-operations/sql-query-execution.md) — Centralizes and organizes complex database queries to maintain separation between business logic and data access.
- [XML Configuration Mappings](https://awesome-repositories.com/f/data-databases/xml-query-mappings/xml-configuration-mappings.md) — Enables decoupling of database logic from application code via XML-based query mapping.
- [Data Type Mappings](https://awesome-repositories.com/f/data-databases/data-type-mappings.md) — Supports pluggable type handlers to bridge the gap between database-specific types and application objects.
- [Data Storage Configurations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-engines/data-storage-configurations.md) — Allows defining persistence logic and mappings through configuration files or annotations. ([source](https://mybatis.org/mybatis-3))

### Programming Languages & Runtimes

- [SQL Persistence Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/java-clients/sql-persistence-frameworks.md) — Provides a Java persistence framework that maps objects to database records using custom SQL.

### Part of an Awesome List

- [ORM](https://awesome-repositories.com/f/awesome-lists/data/orm.md) — SQL-based object mapping framework.
- [Persistence Frameworks](https://awesome-repositories.com/f/awesome-lists/data/persistence-frameworks.md) — SQL mapping framework for Java applications.

### Software Engineering & Architecture

- [Reflection-Based Unmarshallers](https://awesome-repositories.com/f/software-engineering-architecture/reflection-based-unmarshallers.md) — Automates object population from database result sets using runtime reflection.
- [Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures.md) — Implements a hook-based plugin architecture to allow modification of the core execution flow.

### Web Development

- [Dynamic Proxies](https://awesome-repositories.com/f/web-development/dynamic-proxies.md) — Uses dynamic proxies to bind mapper interface method calls directly to SQL statements.
