Ele combina registros ativos, procedimentos armazenados, tipos de dados avançados, SQL complexo, typesafety, geração de código-fonte e Java em uma DSL fluente, intuitiva.
jOOQ gera uma representação Java simples do esquema de banco de dados.
Para cada tabela, exibição, procedimento armazenado, enum, UDT é uma classe.
jOOQ implementa um padrão fácil de usar registro ativo. Não é um OR-mapeador, mas fornece um mapeamento 1: 1 entre tabelas / exibições e classes. Entre as colunas e os membros.
Ele também permite a escrita em tempo de compilação typesafe consultando usando sua built-in DSL.
jOOQ suporta todos os recursos de linguagem SQL padrão, incluindo, SELECTs aninhados a mais complexa da União, junta-se, aliasing
jOOQ permite aos desenvolvedores o uso de extensões específicas do fornecedor como procedimentos armazenados, UDT de, array de e muito mais
Recursos :.
- Características Gerais:
- Modelagem Orientada a Objetos SQL
- geração de código SQL
- OR-Mapping
- Typesafe SQL
- procedimento armazenado e suporte UDT
- Bancos de dados suportados:
- MySQL 5.1.41 e 5.5.8
- H2 1.3.154
- A Oracle XE 10.2.0.1.0
- DB2 9.7
- PostgreSQL 9.0
- HSQLDB 2.0.0
- SQLite com inofficial v056 driver JDBC
- Derby 10,7
- MSSQL
- Sybase
- apoio futuro para:
- Ingres
- Firebird
O que é novo nesta versão:
- Fábrica foi dividido em DSL (construção QueryPart estática) e DSLContext (execução da consulta, & quot; anexado & quot; QueryPart construção). Isso melhora consideravelmente a experiência global DSL enquanto permitindo mais controle do ciclo de vida Executor de granulação fina.
- A ConnectionProvider foi introduzida como uma abstração do ciclo de vida de conexão JDBC. A conexão autônomo e modos DataSource agrupados ainda são suportadas, mas agora você pode injetar seu próprio ConnectionProvider para mais controle.
- Um monte de melhorias de desempenho foram implementados dentro do API jOOQ remover a maior parte da sobrecarga causada por jOOQ quando buscar dados do JDBC
- A JDBC Mock API foi adicionada para ajudar a criar testes de unidade simples para a sua aplicação construída em cima de jOOQ.
- A VALUES () construtor agora é suportado, e derivado listas de coluna para tabelas de alias e colunas de uma vez.
- O tipo de dados API foi muito simplificada. Isto permitiu a introdução de precisão de tempo de execução, a escala ea informação de comprimento.
- CRUD foi melhorada através de muitos mais operações em lote CRUD, insira explícita e UPDATE (além de armazenar ()), e manipulação explícita de bandeiras alterados internos da jOOQ.
O que é novo na versão 2.6.1:
- Bad Postgres matriz serialização quando o & quot; ou & # x5C; caracteres estão contidos em um String []
- implementações ineficientes de AbstractDataType.equals () e hashCode ()
- Melhorar AbstractField.hashCode () e AbstractTable.hashCode () e semelhantes, como estes dois são chamados muitas vezes
- chamada ineficiente para String.split () in StringUtils.toCamelCase () leva a ovrerhead desempenho não desprezível na transformação POJO chama
- Bad SQL rendeu ao combinar ORDER BY [alguma função] com LIMIT .. compensados em DB2, SQL Server
- Bad SQL processada para OVER (ORDER BY [alguma função]) para o SQL Server e Sybase
- questão da segurança Rosca em org.jooq.impl.FieldList
- Bad referência a org.jooq.debug. [Impl] .DebugListener no manual
- Bad código gerado quando o mesmo nome tabela existe em vários esquemas em SQL Server
O que é novo na versão 2.5.0:
- Remova Conversão de Valores de ligação em Ingres
- Simulate RPAD e LPAD em SQLite
- Adicionar suporte para funções do Oracle Text
- Adicionar opção para gerar pojos imutáveis
- Suporte & quot; bloqueio otimista & quot; em UpdatableRecord.store () e delete ()
- Gerar fetchBy [ColumnName] métodos em classes DAO gerados
- Adicione um pouco de Javadoc para documentar a diferença entre usar uma fábrica com uma conexão ou com uma fonte de dados
- Adicione API javax.validation a entrega completa li>
- Adicionar Factory.connectByRoot (Field & # X3C;? & # X3e;) para apoiar a coluna pseudo CONNECT_BY_ROOT a Oracle
- Adicionar Factory.condition (String, QueryPart ...) semelhante ao Factory.field (String, QueryPart ...)
- Adicionar suporte para ORDER BY IRMÃOS da Oracle cláusula, em combinação com CONNECT BY
- Adicionar faltando construtores tendo DataSource para fábricas específicas do dialeto
- Gerar faltando construtores DataSource tendo em fábricas específicas do esquema
- Simular REPEAT () em SQLite
O que é novo na versão 2.4.0:
- Adicionado Result.intoResultSet () para embrulhar um resultado em um JDBC ResultSet
- Evite Sintaxe de escape do JDBC para literais de data / hora
- Gerar classes DAO e interfaces para POJOs
- Documento do ciclo de vida de um ExecuteListener no Javadoc
- Adicionado suporte para PostgreSQL & quot; qualquer & quot; Tipo de dados (com aspas!). Isso parece bem mapeada para java.lang.Object
- Suporte nomes de esquema case-insensitive em geração de código
- Adicionado alguns WARN-nível de log quando o gerador de código-fonte não gera quaisquer artefactos
- Adicionado Field.likeIgnoreCase () para apoiar operador ILIKE Postgres '
- Adicionado Factory (DataSource) e construtores semelhantes
- Adicionado Factory.batchStore (Coleção & # X3C ;? estende UpdatableRecord & # X3C;? & # X3e; & # x3e;) por conveniência
- Adicionado DataType.convert (Object ...) e DataType.convert (Coleção & # X3C;? & # X3e;) por conveniência
- Adicionado org.jooq.Name Factory.name (String) para contruct QueryParts que escaparem de acordo com Settings.getRenderNameStyle ()
- Adicionado Factory.fetch (String, QueryPart ...) e Factory.execute (String, QueryPart ...) e métodos semelhantes para apoiar QueryParts arbitrárias na planície SQL
O que é novo na versão 2.3.2:
- Correções:
- Problema de desempenho com AbstractDataType.convert (Object). Evite conversões quando eles são, obviamente, desnecessário.
- Gerar Javadoc algum significado para os [schema-name] aulas fábrica gerados.
- Adicionado quebra linha para Javadoc gerado sempre que necessário
- da estratégia gerador Personalizado () é chamado com o modo == recorde de tabelas.
- clonagem ineficiente de configurações padrão usando JAXB unmarshalling leva a sobrecarga global não negligenciável. Use em vez de serialização (menos do que um clone do plugin XJC útil).
- Caching SQLDialect em AbstractDatabase fortemente melhora o desempenho de geração de código.
- Erro de compilação quando um procedimento armazenado do SQL Server tem um parâmetro chamado & quot; VALUE & quot;.
- Bad sintaxe para SELECT / * + dica * / DISTINCT ... em Oracle.
- A divisão de grande NOT IN condições é errado. As peças devem ser ligados com E, não com OR.
PrintImplements
O que é novo na versão 2.2.0:.
- Adicionado suporte para o banco de dados CUBRID
O que é novo na versão 2.1.0:
- A possibilidade de fornecer jOOQ com um mapeamento de tipo personalizado .
- Há uma série de novas opções de configuração de tempo de execução para controlar o estilo de SQL do SQL prestados por jOOQ.
- O tratamento de NULL foi melhorada a favor da utilização jOOQ como uma biblioteca construtor de SQL (por exemplo, juntamente com Primavera para execução) NULL não é mais inline, mas vinculado como uma variável.
- jOOQ agora suporta simulação da operação de divisão relacional usando uma sintaxe intuitiva.
O que é novo na versão 2.0.5:
- Execute ouvinte e apoio rastreamento SQL. jOOQ lhe permite ligar os seus próprios ouvintes no motor de execução da consulta de jOOQ de ser notificado de todos os tipos de eventos
- As características SchemaMapping existentes. Eles são agora parte da configuração do tempo de execução
- Configurações StatementType. Especifique se uma fábrica deve executar java.sql.PreparedStatements (com variáveis de ligação) ou java.sql.Statements estáticos com variáveis sequenciais.
O que é novo na versão 2.0.0:.
- A API tornou-se mais estático
- Por padrão, jooq-codegen agora vai gerar um & quot; dinâmica & quot; meta modelo em oposição ao um estático existente.
- As excepções não são mais marcada.
- funções de janela são agora construídos a partir de suas funções agregadas subjacentes assim como em SQL.
Requisitos :
- Java 1.6 ou superior
Comentários não encontrado