All Projects → jOOQ → Jooq

jOOQ / Jooq

Licence: other
jOOQ is the best way to write SQL in Java

Programming Languages

java
68154 projects - #9 most used programming language
PLpgSQL
1095 projects
Xtend
68 projects
kotlin
9241 projects
scala
5932 projects
HTML
75241 projects

Projects that are alternatives of or similar to Jooq

Ebean
Ebean ORM
Stars: ✭ 1,172 (-75.04%)
Mutual labels:  oracle, sql, orm, jdbc, jpa, database, mysql, sqlserver
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (-52.91%)
Mutual labels:  oracle, sql, orm, database, mysql, postgresql, db2
Hibernate Reactive
A reactive API for Hibernate ORM, supporting non-blocking database drivers and a reactive style of interaction with the database.
Stars: ✭ 167 (-96.44%)
Mutual labels:  orm, hibernate, jpa, mysql, postgresql, db2
Querybuilder
SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Stars: ✭ 2,111 (-55.04%)
Mutual labels:  sql, sql-query, database, mysql, postgresql, sql-query-builder
Csv2db
The CSV to database command line loader
Stars: ✭ 102 (-97.83%)
Mutual labels:  oracle, database, mysql, postgresql, sqlserver, db2
Xo
Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server
Stars: ✭ 2,974 (-36.66%)
Mutual labels:  oracle, sql, orm, mysql, postgresql, code-generator
Hunt Entity
An object-relational mapping (ORM) framework for D language (Similar to JPA / Doctrine), support PostgreSQL and MySQL.
Stars: ✭ 51 (-98.91%)
Mutual labels:  orm, hibernate, jpa, database, mysql, postgresql
Hibernate Springboot
Collection of best practices for Java persistence performance in Spring Boot applications
Stars: ✭ 589 (-87.45%)
Mutual labels:  sql, hibernate, jdbc, jpa, mysql, postgresql
Smartsql
SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
Stars: ✭ 775 (-83.49%)
Mutual labels:  oracle, sql, orm, mysql, postgresql, sqlserver
Symmetric Ds
SymmetricDS is a database and file synchronization solution that is platform-independent, web-enabled, and database agnostic. SymmetricDS was built to make data replication across two to tens of thousands of databases and file systems fast, easy and resilient. We specialize in near real time, bi-directional data replication across large node networks over the WAN or LAN.
Stars: ✭ 450 (-90.42%)
Mutual labels:  oracle, database, mysql, postgresql, sqlserver, db2
Liquibase
Main Liquibase Source
Stars: ✭ 2,910 (-38.02%)
Mutual labels:  oracle, sql, database, mysql, sqlserver, db2
Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-97.29%)
Mutual labels:  oracle, sql, database, mysql, postgresql, sqlserver
Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+465.69%)
Mutual labels:  oracle, orm, database, mysql, postgresql, sqlserver
Dbeaver
Free universal database tool and SQL client
Stars: ✭ 23,752 (+405.9%)
Mutual labels:  oracle, sql, database, mysql, postgresql, db2
Jet
Type safe SQL builder with code generation and automatic query result data mapping
Stars: ✭ 373 (-92.06%)
Mutual labels:  sql, sql-query, database, mysql, postgresql, code-generator
Sqlcheck
Automatically identify anti-patterns in SQL queries
Stars: ✭ 2,062 (-56.08%)
Mutual labels:  oracle, sql, database, mysql, postgresql
Sqlc
Generate type-safe code from SQL
Stars: ✭ 4,564 (-2.79%)
Mutual labels:  sql, orm, mysql, postgresql, code-generator
Servicestack.ormlite
Fast, Simple, Typed ORM for .NET
Stars: ✭ 1,532 (-67.37%)
Mutual labels:  oracle, orm, mysql, postgresql, sqlserver
Freesql
🦄 .NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, Click house orm, MsAccess orm.
Stars: ✭ 3,077 (-34.46%)
Mutual labels:  oracle, orm, mysql, postgresql, sqlserver
Jsqlparser
JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern
Stars: ✭ 3,405 (-27.48%)
Mutual labels:  oracle, sql, mysql, postgresql, sqlserver

jOOQ's reason for being - compared to JPA

Java and SQL have come a long way. SQL is an "ancient", yet established and well-understood technology. Java is a legacy too, although its platform JVM allows for many new and contemporary languages built on top of it. Yet, after all these years, libraries dealing with the interface between SQL and Java have come and gone, leaving JPA to be a standard that is accepted only with doubts, short of any surviving options.

So far, there had been only few database abstraction frameworks or libraries, that truly respected SQL as a first class citizen among languages. Most frameworks, including the industry standards JPA, EJB, Hibernate, JDO, Criteria Query, and many others try to hide SQL itself, minimising its scope to things called JPQL, HQL, JDOQL and various other inferior query languages

jOOQ has come to fill this gap.

jOOQ's reason of being - compared to LINQ

Other platforms incorporate ideas such as LINQ (with LINQ-to-SQL), or Scala's SLICK, or also Java's QueryDSL to better integrate querying as a concept into their respective language. By querying, they understand querying of arbitrary targets, such as SQL, XML, Collections and other heterogeneous data stores. jOOQ claims that this is going the wrong way too.

In more advanced querying use-cases (more than simple CRUD and the occasional JOIN), people will want to profit from the expressivity of SQL. Due to the relational nature of SQL, this is quite different from what object-oriented and partially functional languages such as C#, Scala, or Java can offer.

It is very hard to formally express and validate joins and the ad-hoc table expression types they create. It gets even harder when you want support for more advanced table expressions, such as pivot tables, unnested cursors, or just arbitrary projections from derived tables. With a very strong object-oriented typing model, these features will probably stay out of scope.

In essence, the decision of creating an API that looks like SQL or one that looks like C#, Scala, Java is a definite decision in favour of one or the other platform. While it will be easier to evolve SLICK in similar ways as LINQ (or QueryDSL in the Java world), SQL feature scope that clearly communicates its underlying intent will be very hard to add, later on (e.g. how would you model Oracle's partitioned outer join syntax? How would you model ANSI/ISO SQL:1999 grouping sets? How can you support scalar subquery caching? etc...).

jOOQ has come to fill this gap.

jOOQ is different

SQL was never meant to be abstracted. To be confined in the narrow boundaries of heavy mappers, hiding the beauty and simplicity of relational data. SQL was never meant to be object-oriented. SQL was never meant to be anything other than... SQL!

For more details please visit jooq.org.

Follow jOOQ on Twitter and the jOOQ blog.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].