問題タブ [ibatis]

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 投票する
2 に答える
9279 参照

java - iBatisによる親子関係のマッピング

私は古典的なセットアップを持っています

iBatis (バージョン 2.30 ... 聞かないでください) を使用して、これを通常のテーブル設定にマッピングしようとしています。

私のマッピングファイルは次のようになります

最初に通常のことを行うとsqlMap.queryForObject("loadParent", new Integer(42))、セッター内で NullPointerException が発生し、setChildren明らかに null 引数で呼び出されます (私の悪いことです)。セッターの修正はすべて正常に機能しますが、ログsetChildrenは単一の SQL ステートメントを実行する前に 1 回だけ呼び出され、引数が null であることを示しているため、ここで何が起こっているのか疑問に思っています。誰にも手がかりはありますか?

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

java - iBatis は私のテーブルに主キーを強制しますか?

私はレガシープロジェクトに取り組んでいます。データベースの設計が不十分です。今すぐDB層を変更したい。最初に頭に浮かんだのはhibernateですが、休止状態にはテーブルに主キーが必要です。実際、私のテーブルのいくつかには主キーがありません。だから私はグーグル検索を行い、 iBatisを見つけました。それはそれでとても良い音です。しかし、 iBatisがテーブルに主キーを強制するかどうかはわかりません。

ありがとう。

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

java - iBATISによってPOJOに戻されたストアドプロシージャの出力パラメータ

iBATISを使用してMSSQLServerのストアドプロシージャを呼び出しています。入力パラメーターは、マップに配置されるPOJOのプロパティです。

すべてのパラメータはプロシージャへの入力として正しく設定されているため、問題はありません。しかし、パラメーターの1つは出力パラメーターであり、POJOに戻されることを期待していましたが、代わりに1つの追加"obj.new"=falseのマッピングがiBATISによってマップに配置されます。これは、基本的な考え方を示すマッピングの簡略化されたバージョンです。

プロシージャを呼び出した後、Mapに2つのマッピングがiBATISに渡されました。

  • "obj"=POJO
  • "obj.new"=False

これで、iBatisのドキュメント「ストアドプロシージャを実行すると、iBATISはOUTPUTパラメータのオブジェクトを作成する」と記載されていることがわかります。これは理にかなっています。しかし、私の質問は、プロシージャが呼び出された後、iBATISにブール値をPOJOに戻すように指示する方法があるかどうかです。マップから値を取得して自分でPOJOに設定するという余分な作業はしません。

//Uhlén

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

sql - ibatis/Oracle-INSERT内のSELECTクエリが失敗している

iBatisを使用して挿入操作を実行しようとしています。

内部選択クエリは常に失敗し、NULLを返します。ただし、内部クエリでのみ#field2#を実際の値に置き換えると、正常に機能します。なぜiBatisは内部クエリのフィールド値を置き換えないのですか?

何か案は?

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

configuration - log4j が期待どおりに動作しないのはなぜですか?

log4j を次のように動作させようとしている同僚がいます。

  • 標準出力に記録
  • デフォルトでは、ほとんどの出力を無効にします
  • debug レベル以上の java.sql.PrepareStatement からのメッセージのみを表示する

彼は「レベル」対「優先度」に巻き込まれています。彼の設定ファイルは次のとおりです。

示されているように、より単純な構成 (ルート ログ レベル = ERROR):

ルート ログ レベルをデバッグに変更した構成 (クエリを … に置き換えます)

期待どおりに動作させるには、log4j.xml 構成ファイルをどのように変更する必要がありますか?

0 投票する
4 に答える
4729 参照

java - NULL は SQL の delete ステートメント (Derby の場合) で許可されていませんか?

次のクエリが Derby で失敗する理由を知っている人はいますか?

次のエラーが表示されます。

SQLは、iBatis ORMレイヤー構成に書き込んだSQLに基づいてJavaプログラムで生成されています。準備されたステートメントは次のとおりです。

ご覧のとおり、私が言おうとしているのは、パラメーターが null でない場合、列の値をパラメーターに対してテストするということです。

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

java - Guice + クォーツ + iBatis

Guice (Java)、Quartz スケジューラ、および iBatis ( iBaGuice ) を結び付けて、次のことを実行しようとしています。

  1. を使用してコマンド ライン ユーティリティ スキャナーを起動しますmain()
  2. フォーマットされた出力 (XML または YAML) を含むファイルのディレクトリ (引数として指定) を定期的にスキャンします
  3. ファイルが検出されると、解析して結果をデータベースに出力します

問題点:

  1. この例を使用して、Guice と Quartz を接続しました。ただし、コメントで質問している重要な詳細がいくつか欠けていますが、投稿はやや古いため、ここでも引用しています。
  1. スケジューラの設定方法は明らかではありません。をどこにどのように配線しますかTrigger(使用できますTrigger#makeMinutelyTrigger)?
  2. 私が実際に実行するジョブのタイプは 1 つだけです。JobFactory#newJob の詳細はTriggerFiredBundleパラメーターから来ていることは理解していますが、どこにどのように配線すればよいですか? そして、具体的なジョブをどこで/どのように作成または配線しますか?

PSScheduleProviderを作成して配線することで、もう少し先に進みました。今、この次のスニペットでジョブを実際にスケジュールする方法に行き詰まっています。私のJobFactory#newJobメソッドが呼び出されていないようです

}

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

java - 同じアプリケーションで Hibernate と Ibatis を使用する

新しいアプリを作成する必要がありますが、他の 2 つのアプリのデータ アクセス ロジックを使用しています。1 つは Hibernate を使用し、もう 1 つは iBATIS を使用します。同じアプリで Hibernate と iBATIS の両方を使用できますか? どのように?。

更新:質問を再構成させてください。いくつかの DAO やドメイン クラスを再利用することを忘れないようにしましょう。同じアプリ、Hibernate と iBATIS で使用する必要があります。どうやってやるの?御時間ありがとうございます...

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

java - Spring と IBATIS で特定のクエリに異なるデータソースを使用する

クエリの種類に応じて、複数 (この場合は 2 つ) のデータソースを使用するようにアプリを更新する必要があります。たとえば、読み取り操作には DB1 を使用し、書き込み操作には DB2 を使用します。これにどのようにアプローチしますか?

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

sybase - 「無効な SQL ステートメントまたは JDBC エスケープ、終了 '}' が見つかりません。」jTDS と Sybase を使用

ibatis 経由でストアド プロシージャを呼び出しています。jconn2.jar (5.5) を使用すると、動作し、動作しました。jtds jar (1.2.5) に交換すると、「無効な SQL ステートメントまたは JDBC エスケープ、終了 '}' が見つかりません」という例外が発生します。

透明性を高めるために、Spring と DBCP を使用しています。明らかに、jTDS での SQL コードの解析は好まれておらず、jconn2 で受け入れられています。このプロジェクトは私たちよりも前からあり、私はもう何年も Sybase を使っていません。

データ内の範囲外の文字は、「-」、「:」、および「.」です。

この問題を回避するには、ストアド プロシージャ呼び出しステートメントでパラメーターをエスケープする必要がありますか? jTDS に設定されていない jconn2 のデフォルト設定はありますか?

ありがとう。