Benefits

OK. Why?

SQL as Code
Closely integrates SQL with Java or Kotlin.
IDE code completion guides you safely through even the most sophisticated queries and instantly validates them.

Type-Safe
Operate on proper data structures only.

Fully Object-Oriented
Work with abstracts, interfaces, inheritance, extensions...

Literally everything is a true object. 

Anything, even your query, can be an abstraction as well.

Performance
Tests show that Daobab is faster than Hibernate and JPA in most cases.

This is due to two key features:
- Frozen Queries, which bring efficiency close to pure JDBC.
- Fast JSON conversion — the internal JSON conversion is faster than most popular libraries because Daobab retains key information about object types.

Entity as a Map with column interfaces
Each unique column has its own interface. By default, an Entity has no fields, only interfaces. Each column interface reads and writes from a map.
Relations between entities (tables) are built by implementing the same column interfaces.
This unique approach opens up many possibilities and faithfully recreates database relations in Java.


Rich SQL Support
Use not only basic SQL features but also very useful joins, group by, having, functions, and more.


Concise expressions
With Daobab, a query mostly fits in a single line.


SQL within Java/Kotlin code
You don't need to create a separate method for each specific query.
You can use SQL in your for loops, if conditions, or generally inside any Java method body.


SQL with values
You can log your query in full, including all values.
You can also copy and paste SQL from your logs directly into your database tool for debugging.
And it's safe.


TypeSafe
There are no casts at all. All types are handled automatically.


Immutable entities
Modify entities freely — each modification produces a new copy.
Daobab does not need to merge them.


Easy to use
Essentially, after reverse engineering, you are ready to work with the database.

Automatic assignments
Just work with queries. Don't worry about SQL parameter assignments.


Easy testing
Daobab and unit tests are a perfect match. Just work with the queries.


Unlimited targets
You can query an unlimited number of databases and schemas within your own microservice without any issues.
Migrations? No longer a big deal.


In-Memory targets
Create buffers with part of the database copied into memory.
Executing SQL queries against such a target is very fast.


Remote targets
No need for direct database access. No need to expose numerous endpoints.
Just execute queries remotely and safely.


Database independent
Regardless of the database engine you use, Daobab can adapt your SQL to the native database dialect.


Framework independent
Works well with Spring, Spring Boot, Java EE, standalone applications, and others.




Daobab introduced a completely new approach to the Reverse Engineering.


Column is not literally a field anymore, but a generated, dedicated interface.


Entity, which is a table representation, inherits as many column interfaces, as many columns have such a table. Because of that, Entity is also each column instance in Java.


That brings a lot of simplification during the query building.

Another thing is complexity. Daobab is almost fully compatible with SQL standard. That's extraordinary. Even some unpopular SQL Functions, are available. Even very rare SQL constructions, are possible.

That brings the full scope of possibilities.

You may be surprised, but Daobab doesn't work only with Database.

There are a lot of targets, where your query may be executed.

Java collections? ByteBuffers? Remote endpoint? You may query those targets in the same manner as database!

You may use Daobab without any database connections, just to simplify your internal work with data structures.

© Copyright 2018-2023 Elephant Software Klaudiusz Wojtkowiak 
e-mail: contact@daobab.io