問題タブ [jdbc]

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

java - jdbc: いつ何を閉じることができますか

現在、次の基本構造のjdbcコードがあります。

接続を取得

(次の 4 行を数回実行し、ステートメントを閉じないでください)
ステートメントを
取得 結果セットを取得 結果セットを
処理 結果セットを
閉じる

接続を閉じる

このコードを書いた後、ステートメントを閉じる必要があることに気づきました。
1 ステートメントを閉じないことの影響は何ですか。
2 次のように動作しますか? この si ステートメントを閉じると、結果セットを通常どおり処理できなくなりますか?

接続を取得

(次の 5 行を数回実行)
get statement
get result set
close statement
process result set
close result set

接続を閉じる

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

oracle - JDBCを使用したCLOBとのOracle単一テーブル定数のマージ

この質問のフォローアップとして、次のシナリオについてサポートが必要です。

Oracle では、単純なデータ テーブルが与えられます。

次のマージ コマンドを使用しています。

Java アプリケーションから JDBC 経由でクエリを呼び出しています。

「値」文字列が大きい場合、上記のクエリを実行すると、次の Oracle エラーが発生します。

ここに記載されているように、「SetBigStringTryClob」プロパティを設定しても同じ結果が得られます。

「値」がCLOBであることを考えると、私が望む動作を達成することは可能ですか?

編集: クライアント環境は Java です

0 投票する
5 に答える
18976 参照

performance - ORM ソリューション (JPA; Hibernate) と JDBC の比較

インメモリ HSQL データベースで、5 秒ごとに少なくとも 8000 オブジェクトの一貫した速度でオブジェクトを挿入/更新できる必要があります。

Spring/Hibernate/JPA と純粋な JDBC の間でいくつかの比較パフォーマンス テストを行いました。HSQL を使用すると、パフォーマンスに大きな違いがあることがわかりました。Spring/Hib/JPA を使用すると、1.5 KB オブジェクト (1 対多および多対多の関係) を 5 秒で 3000 ~ 4000 個挿入できますが、直接ではJDBC 呼び出しでは、同じオブジェクトを 10,000 ~ 12,000 個挿入できます。

なぜこのような大きな違いがあるのか​​ わかりません。Spring/Hib/JPA の設定を何度も微調整して、運が悪ければパフォーマンスに近づこうとしました。将来の目的、拡張性、および外部キー関係 (1 対多および多対多) を手動で維持するのが難しいため、Spring/Hib/JPA を使用したい。しかし、パフォーマンス要件は、純粋な JDBC の使用を指しているようです。

なぜこのような大きな違いが生じるのか、何か考えはありますか?

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

java - Java アプリケーションからの SQL Server jdbc ドライバーのログ記録を無効にする方法を教えてください。

アプリケーション ログ レベルを FINE に変更すると、SQL Server のログもそれを使用するため、不要なログ メッセージが大量に発生します。SQL Server のログ メッセージをオフにするにはどうすればよいですか?

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

jdbc - 統合テストのためにデータベースの失敗を扇動する

統合テスト(この場合、WebサービスがJDBCと通信している)を実行するとき、結果として生じる石鹸の障害を検査できるように、データベースにエラーをスローさせるにはどうすればよいですか?

私はSpringのTransactionalTestFrameworkを使用しているので、それDROP TABLE whatever;を破るために単に発行するのは不合理でしょうか?:D

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

oracle - 最適なタイプ 4 Oracle JDBC ドライバーは?

最適なタイプ 4 Oracle JDBC ドライバーは?

私が欲しいもの:

  • 安定しており、バグが少なく、迅速な修正が行われています
  • 通常の JDBC の落とし穴 (接続リークなど) について警告する必要があります。
  • CLOBをサポートする必要があります

[編集] 「無料」の Oracle Type 4 ドライバーに関する私の主な問題は次のとおりです。

  • CLOB サポート コードのカーソル リークを 2 週間かけて探しました (ストリームを閉じても、基になるカーソルは閉じられません)。
  • ResultSet から値をフェッチするときは、それらを順番に処理する必要があります (したがって、列 #4 をフェッチした後に列 #3 を取得することはできません)。
  • 結果セットの getMetaData() は、最初の行をフェッチするまで機能しません。
  • 他にも多くのバグや欠陥がありましたが、もう覚えていません。

全体として、1 席あたり 1,000 ドルかかるドライバーは、オラクルの「無料」ドライバーよりも「安価」です。ドライバーの唯一の利点は、データベースを TNSNAMES に入れる必要がなく、単一のドライバーを使用して Oracle 8、9、および 10 にアクセスできることでした。それが私が尋ねる理由です。

0 投票する
12 に答える
62169 参照

java - javaでjdbcコードを単体テストするにはどうすればよいですか?

データベースに接続し、1 つ以上のクエリを実行し、結果を処理するコードの単体テストを書きたいと思います。(実際にデータベースを使用せずに)

ここにいる別の開発者は、xml 構成ファイルに基づいて対応するオブジェクトを返す独自の DataSource、Connection、Statement、PreparedStatement、および ResultSet 実装を作成しました。(偽のデータソースを使用して、それが返す結果セットに対してテストを実行するだけで済みます)。

ここで車輪を再発明していますか?このようなものは単体テスト用にすでに存在しますか? jdbcコードをテストするための他の/より良い方法はありますか?

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

java - JavaコードからColdFusionデータソースにアクセスする

私はColdFusionMX7内で実行したいサーブレットを持っています。可能であれば既存のColdFusionDSNをjavax.sql.DataSourceとして利用したいと思います。

私は次のようなことを考えました

動作しますが、残念ながらサーブレットは

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

sql-server - SQL2000 の BCP out エラー: SQLState = 37000、NativeError = 4060

マシンのローカル DB にあるすべてのユーザー テーブルを取得する proc を作成しました。BCP と SQL を使用して、すべてのテーブルのフラット ファイルを作成できるようにしたいと考えています。Windows認証を介して接続するSQL 2000のダミーデータベースです。WinXP SP2 で環境パス変数を設定しました。信頼できる接続を使用して、データベースにアクセスするための新しいユーザーを作成し、ファイアウォールをオフにしました。私は何十ものフォーラムを試しましたが、うまくいきませんでした。

dosコマンドプロンプトで同じエラーが発生します。

SQLState = 37000、NativeError = 4060 エラー = [Microsoft][ODBC SQL Server Driver][SQL Server] ログイン '[HelpDesk-EasyPay' で要求されたデータベースを開けません。ログインに失敗します。

ここに私のSPがあります:

誰でもアドバイスできますか。これは接続の問題または BCP のようです。わからない。

編集:フラット ファイルに出力するテーブルが 118 個あるため、これをクエリ アナライザーから実行しています。ユーザー名saパスワードrootでマスターdbに接続しようとしたため、認証の問題であることに同意しているようです。これが設定されており、同じエラーが発生します:SQLState = 37000、NativeError = 4060

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

java - JDBC の内部を理解する

[1] JDBC では、最初に Class.forName("some driver name") を使用してドライバーをロードする必要があるのはなぜですか。SUN が getConnection() メソッド自体でドライバのロードを処理しなかったのはなぜですか。ドライバ名をパラメータとして getConnection() メソッドに渡した場合。

[2] JBDC の内部構造を理解したいと思っています。