問題タブ [jooq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
356 参照

open-source - 私のオープンソース ライブラリは安定しています。ではどうやって注目を集めるか?

私は最近、Java で書かれた主要なオープン ソース ライブラリの開発を安定化させました。その後、サーバー側で記事を公開しました。これにより、多くの肯定的な (しかし批判的で建設的な) フィードバックが寄せられました。そして、最初の貢献者です。これは素晴らしいことです。

このような良いフィードバックのおかげで、私は自分のプロジェクトについて、有用で独創的なものを作成しているという意味で、非常に満足しています。私のプロジェクトの背後にあるいくつかの重要なアイデアと、それが独創的だと思う理由:

  • or-mapper です。OK、それは本当にオリジナルではありません... ;-)
  • その中にコード生成があります。OK、まだオリジナルではありません。しかし、それは常に素晴らしいです。
  • 独自のドメイン固有言語を使用して、Java で型安全なクエリを作成できます。その方がいいです。文字列連結なし。JPA は最近、Hibernate から基準クエリをコピーしたばかりです。
  • 複雑な結合、ネストされた選択、ユニオン、エイリアシングなどを含むすべての SQL 機能でこれを行うことができます。OR マッパーは、RDBMS の背後にあるリレーショナル データ モデルを無視しようとする傾向があります。
  • UDT、ストアド プロシージャ、ネイティブ関数など、あらゆる種類のネイティブな非標準機能をサポートしています。それを行う or-mapper は知りません。

これらの重要なアイデアは、非常に特定のタイプの開発者に役立つと思います。その特定の開発者

  • Java と巨大なレガシー データベースとのインターフェイスを提供します。
  • SQL をよく知っており、広く使用したいと考えています。
  • 新しい言語 (HQL、JPQL など) を学びたくない
  • 洗練された XML 構成の微調整に 1 分も費やしたくありません。
  • 彼のソフトウェアはデータベースと密結合しているため、SQL の抽象化はほとんど必要ありません。Hibernate や JPA の担当者が無視しているように見えるものです。
  • EDIT : データベースにアクセスするには、強力だが軽量のライブラリが必要です。たとえば、モバイル デバイス用に開発する場合 (SRM のコメントを参照)。

さぁ、激務の始まりです。注意を引く方法は?どうすればより多くの観客を獲得できますか? 私のプロジェクトが関連性を持つにはどうすればよいですか? その「特定のタイプの開発者」に到達するにはどうすればよいですか?

0 投票する
3 に答える
1220 参照

java - Oracle パッケージと Java パッケージ間のマッピング

データベース インターフェイス ライブラリjOOQで、Oracle (または DB2 など) パッケージのサポートを追加したいと考えています。すべてのストアド オブジェクトが生成された Java クラスとしてモデル化されるストアド プロシージャ/関数のサポートを既に実装しています。たとえば、このストアド関数

次のように使用できるクラスを生成します (便利なメソッドもたくさんあることに注意してください。この例は一般的な設計を示しているだけです)。

マッピングSQL 関数-> Java クラスを選択した理由は、ストアド プロシージャが複雑な戻り値 (複数の OUT または IN OUT パラメータ) を許可し、プロシージャを呼び出した後に 1 つずつ取得できるようにするためです。

現在、この設計は、オーバーロードが不可能なストアド関数/プロシージャで正常に機能します。ただし、Oracle (または DB2) のパッケージ内では、次のような同じ名前の関数をいくつか持つことができます。

関数 (またはプロシージャ) ごとにクラスを生成すると、いくつかのFAuthorExistsJava クラスと名前が衝突します。不十分な解決策は、クラス名に , などのインデックスを追加することFAuthorExists2ですFAuthorExists3。別の不十分な解決策は、パラメータ名/型からある種のハッシュ値 (または値自体) を生成して、 , などのクラス名に直接入れることFAuthorExistsVARCHAR2ですFAuthorExistsVARCHAR2VARCHAR2。明らかな理由から、どちらのソリューションも望ましくありません。

誰でもこの問題の簡単な解決策を持っていますか? それとも、そのような関数名のオーバーロードの問題を引き起こさない、より良い全体的な設計のアイデアでしょうか?

フィードバックをいただければ幸いです。

0 投票する
8 に答える
16722 参照

java - JOOQと春

Spring フレームワークで JOOQ を使用しようとした人はいますか?

http://www.jooq.org

0 投票する
3 に答える
3468 参照

java - java.sql.ResultSet、CallableStatement、SQLInput への共通インターフェースなし

こんな状況です

jOOQでは、JDBC を抽象化する必要がたくさんあります。一部のデータは単純な ResultSet から取得され、一部のデータは SQLInput (UDT の場合)、または CallableStatements (ストアド プロシージャ/関数の場合) から取得されます。したがって、これらの JDBC タイプに抽象化を追加したいと思います。

現在、それらはすべてほぼ同じように機能します。通常、のすべてのデータ型に対してgetandメソッドがあります。たとえば、次のような方法で出荷されますsetjava.sql.Types

そして、それらはすべて次のようなメソッドを持っています

問題

残念ながら、これらの JDBC インターフェイスは単一の共通インターフェイスを拡張するものではなく、このスニペットのような一般的な JDBC コードを記述したい人にとっては簡単です (私の質問をサポートするための単なる例です)。

ResultSet上記のコードは、 、CallableStatement、の 3 つすべてに対して記述する必要がありますSQLInput。そして、似たような例がたくさんあります

私の質問は

  • この問題をエレガントに解決する JDBC 拡張ライブラリを知っている人はいますか?
  • それとも、これらすべてのタイプの単純なラッパー クラス (またはアダプター) を自分で作成する必要がありますか?
  • それとも、その事実を受け入れて、内部ライブラリ コードを複製し続けますか?

どのソリューションを好みますか、またその理由は何ですか? フィードバックをお寄せいただきありがとうございます

0 投票する
3 に答える
1610 参照

sql - DB2でネストされた構造化タイプ(UDT)を使用するにはどうすればよいですか?

DB2を使用してネストされた構造化タイプ(UDT)を使用しようとしていますが、いくつかの問題が発生しました。

以下は、ユースケースの型、テーブル、関数、および変換を作成するためのSQLステートメントです。すべてのステートメントは正常に実行されますが、単純な実行を試みるとエラーが発生します select * from t_author

次のエラーが発生しますselect * from t_author;

私が間違っていることについて何か考えはありますか?

DB2 v9.5(Linux)を使用しています。

0 投票する
2 に答える
293 参照

java - オープン ソースの Java 永続性ライブラリをサポートする必要がある他の RDBMS

JDBC の上に構築された Java 永続ライブラリであるjOOQの新しいバージョンをリリースしています。現在、次の 7 つの RDBMS をサポートしています。

  • オラクル
  • MySQL
  • ポストグル
  • H2
  • HSQLDB
  • DB2
  • SQLite (実験的)

jOOQ では、幅広く堅牢な RDBMS サポートを提供したいと考えています。これは、統合テストで堅牢性を提供するために、かなり厳選する必要があることを意味します。同時に、重要なデータベースをサポートするエンド ユーザーのニーズを満たす必要があります。エンド ユーザーはデータベースに大きく依存していると思います。jOOQ は OR マッパーではありません。逆に、jOOQ はストアド プロシージャなどのベンダー固有の機能を採用しているため、基盤となるデータベースは私にとって非常に重要です。

次のリリースでは、RDBMS サポートをさらに追加したいと考えています。例えば:

  • MSSQL
  • ダービー

あなたは何を提案しますか、そしてその理由は何ですか? 客観的な根拠に基づいて説明し、参考文献を引用してください。

更新

次の RDBMS がサポートされるようになりました。フィードバックをありがとう

  • キューブリッド
  • ダービー
  • アングル
  • SQLサーバー
  • Sybase (SQL Anywhere と ASE の両方)
0 投票する
3 に答える
5135 参照

java - Java: JOOQ 永続化フレームワークのパフォーマンスとフィードバック

JOOQと呼ばれる優れたSQL ビルダー フレームワークを見つけまし。ところで、ロシア語で JOOQ は「虫」(昆虫のような)、「カブトムシ」を意味する名詞のように聞こえます ;)

JOOQ のパフォーマンスなどについてフィードバックがあれば、共有してください。JOOQに関するブログへのリンクも大歓迎です。

0 投票する
1 に答える
298 参照

sql - Jooqを使用して数値ベースでvarcharフィールド(数値を持つ)でクエリをソートします

varchar フィールドをソートするにはどうすればよいですか。ID を varchar として取得し、数値でソートしたいと考えています。

を使用してSQLでこれを行うことができます

私がJooqに持っているのは

0 投票する
1 に答える
10047 参照

java - Jooq で他のカスタム (concat、sum、count) 列を使用してデータベースからすべての結果列を取得する方法

6列のテーブルTable1があります。

これが、マップする必要があるSQLステートメントです。

これで、SQL クエリの結果は 7 列になります (6 つの Table1 列と 1 つの IdCount 列)。しかし、このクエリでJooqに同じものを実装すると、単一の列「IDCount」しか得られません。

今、結果のレコードセットには単一の列「IdCount」しかありませんが、必要なのはすべての列と1つの追加の列「IdCount」です。Jooq にも 7 つの列が必要です。

0 投票する
1 に答える
2471 参照

postgresql - postgresqlのJooqJooq構成jooq.propertiesからテーブルを生成できません

MySQLテーブルからJavaモデルファイルを生成しました。しかし今、私たちはPostgreSQLに切り替えており、そこで動作するためにすべてが必要です。そこで、PostgreSQL構成用の新しいjooq.propertiesファイルを作成しました。ただし、テーブルからモデルファイルは生成されません。

PostgreSQLのjooq.propertiesファイルは

コマンドラインで取得する出力は次のとおりです。

pgAdmin3のPostgreSQL情報は、pgsql-> databases-> ofbiz_olo-> Schemas->public->Tablesのようになります。