---
title: "Database (Doctrine DBAL)"
manual: "TYPO3 Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3coreapi:doctrine-dbal@main"
source: "ApiOverview/Database/DoctrineDbal/Index.rst"
rendered: "2026-09-24T12:36:55+00:00"
---

# Database (Doctrine DBAL) {#doctrine-dbal}

This chapter describes accessing the database on the level of the Doctrine
Database Abstraction Layer (DBAL).

The [Doctrine Database Abstraction Layer (DBAL)](https://www.doctrine-project.org/projects/dbal.html) in TYPO3 provides developers
with a powerful and flexible way to interact a database, allowing them to
perform database operations through an object-oriented API while ensuring
compatibility across different database systems.

In the TYPO3 backend rows of database tables are usually represented as
[Database records](https://docs.typo3.org/permalink/t3coreapi:database-records@main) and configured in
[TCA (table configuration array)](https://docs.typo3.org/permalink/t3coreapi:database-records-tca@main).

In Extbase extensions tables are abstracted as
[Extbase models](https://docs.typo3.org/permalink/t3coreapi:extbase-domain-model@main). Operations such as creating, updating and
deleting database records are usually performed from within a
[Extbase repository](https://docs.typo3.org/permalink/t3coreapi:extbase-domain-repository@main) with methods provided by Extbase
classes. However, Doctrine DBAL can also be used by extensions that use, for
example, an [Extbase controller](https://docs.typo3.org/permalink/t3coreapi:extbase-controller-overview@main).

**Contents**

-   [Introduction](https://docs.typo3.org/permalink/t3coreapi:introduction@main)
-   [Configuration](https://docs.typo3.org/permalink/t3coreapi:configuration@main)
-   [Basic create, read, update, and delete operations (CRUD)](https://docs.typo3.org/permalink/t3coreapi:basic-create-read-update-and-delete-operations-crud@main)
-   [Class overview](https://docs.typo3.org/permalink/t3coreapi:class-overview@main)
-   [ConnectionPool](https://docs.typo3.org/permalink/t3coreapi:connectionpool@main)
-   [Query builder](https://docs.typo3.org/permalink/t3coreapi:query-builder@main)
-   [Connection](https://docs.typo3.org/permalink/t3coreapi:connection@main)
-   [Expression builder](https://docs.typo3.org/permalink/t3coreapi:expression-builder@main)
-   [Restriction builder](https://docs.typo3.org/permalink/t3coreapi:restriction-builder@main)
-   [Result](https://docs.typo3.org/permalink/t3coreapi:result@main)
-   [Driver middlewares](https://docs.typo3.org/permalink/t3coreapi:doctrine-dbal-driver-middlewares@main)
-   [Various tips and tricks](https://docs.typo3.org/permalink/t3coreapi:various-tips-and-tricks@main)
-   [Troubleshooting](https://docs.typo3.org/permalink/t3coreapi:troubleshooting@main)
