Daobab closely integrates SQL with Java.
Database usage becomes native and quick to use.
IDE 'code completion' guides you safely even throughout the most sophisticated queries, and instantly checks your query.
You can only call existing tables or columns.
You cannot provide incompatible type or read an invalid data type in the query.
Daobab provides a real Object Relational Mapping. No compromises.
You may use full object-oriented approach, extend entities, inherits composite columns, use abstracts, similar data types and more.
Tables, Columns... literally everything is a true object.
Anything, even your query, may be an abstract as well.
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.
Fully Object Oriented
Entities have database relations recreated in Java.
Do you like to create abstract methods? You should like to create abstract SQL queries as well.
Entity as Map along with column interfaces
Each unique column has its own interface. By default, Entity has no fields, but 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 brings a lot of opportunities and recreates the database relations into a Java.
With Daobab, query mostly ends in a single line.
SQL within Java code
You don't need to create a separate method for each specific query.
You may use SQL in your for loops, if conditions or generally inside of any Java method body.
SQL with values
You may log your query completely, with values.
Also you can copy and paste SQL from your log to debug it into your DB tool.
And it's safe.
There is totally no castings. All types are being handled automatically.
Easy to use
Basically, after reverse engineering, you are ready to work with the database.
Just work with queries. Don't worry about SQL assignments.
Daobab and Unit Tests? This is a perfect marriage. Just play with the queries.
Technically, you may call an unlimited amount of databases/schemas within your own microservice without any problems.
Migration? Not a big deal anymore.
Create buffers with part of the database copied into memory.
Execution of the SQL query on such a target, is very quick.
No need to have a direct database access. No need to expose a number of endpoinds.
Just execute the query remotely and safely.
No matter what kind of database you have. Daobab is able to correct your SQL and use the native database dialog.
Works fine with Spring, Spring Boot, JavaEE, standalone.... and others.