問題タブ [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.
java - Oracle から JDBC 準拠のデータベースにクエリを実行するのが簡単ではないのはなぜですか?
わかりましたので、すでにパイと同じくらい簡単です。しかし、実際にはそれよりも簡単なはずです。
JDBC接続文字列をTNSNAMESに入れるだけで、別のデータベースに接続できるはずだと思います。すべてのデータベース ベンダーはタイプ 4 JDBC ドライバーを持っており、通常は優れた無料の代替手段があります。
Oracle は熱心な Java ファンであり、JVM がデータベースに組み込まれていることを考えると、JDBC ベースのリンク テクノロジは非常に簡単であると考えていました。TNSNAMES に JDBC 接続文字列を含めることは自然な拡張のようであり、すべてが「正常に機能する」でしょう。
しかし、このようには機能しません。Oracle以外の別のデータベースに接続したい場合は、Oracle Gatewaysと呼ばれるものを購入するか、ODBCをいじる必要があります(Generic Connectivityと呼ばれるものを介して)。
[独創性に関する警告... これは私の以前の質問に関連していますが、誰かが別の質問として補足コメントを入力することを提案しました。私は誰と議論するのですか?
java - Eclipse ヘルプの Postgres JDBC 接続
Eclipseでpostgres jdbc接続を機能させようとしています。Data Source Explorer を使用できればよいのですが、今のところ、基本的な接続を取得しようとしています。これまでに行ったことは、postgres JDBC コネクタをダウンロードすることです。次に、2つの異なることを試しました。まず、設定 -> データ管理、postgres コネクタを追加してみました。次に、プロジェクトに jar を追加し、Class.forName("org.postgresql.Driver"); を使用してドライバーをロードしようとしました。しかし、どちらも機能しませんでした。誰にもアイデアはありますか?
ありがとう、チャーリー
java - 挿入された行jdbcの主キー?
挿入したばかりのレコードの主キーを取得するためのクロスデータベースプラットフォームの方法はありますか?
この回答は、Callingで取得できることをSELECT LAST_INSERT_ID()
示してSELECT @@IDENTITY AS 'Identity';
おり、jdbcのデータベース間でこれを行う一般的な方法はありますか?
そうでない場合は、SQL Server、MySQL、およびOracleのいずれかにアクセスできるコードにこれを実装することをどのように提案しますか?
java - 異なる列名に resultMap を再利用する
1 つのクエリで同じ resultMap を複数回再利用する方法はありますか。
たとえば、「foo」の resultMap があるとします。
上記を異なる列に再利用する別のresultMapを定義する方法はありますか? 何かのようなもの...
java - ユーザー名またはパスワードなしで Oracle に接続
Oracle には、Oracle に接続しているプログラムを実行しているオペレーティング システム ユーザーによってデータベース ユーザーを識別できるようにするというこの概念があります。ここを参照してください。
これにより、たとえば UNIX マシンのユーザーとして、次のようなコマンドを実行できます。
ユーザー名またはパスワードなしで接続する Oracle 10.2 用の Java プログラムを作成しようとしています。URL の明らかな選択:
動作せず、エラーが発生します (申し訳ありませんが、現在利用可能なエラーはありません)。
私はこれを行う他の多くの形式も試みましたが、うまくいきませんでした。
OS識別方法を使用してJavaプログラムをOracleに接続する方法について何か提案はありますか?
java - 複数の行をアトミックに更新する
ResultSet
選択を実行してから、アトミックな方法でいくつかの行を更新する必要があります。
私が使用しているコードは次のようになります(簡略化):
- 更新がアトミックに実行されることを保証できますか? そうでない場合、どうすればそれを保証できますか?
- を介して更新しているデータベース行を他のプロセスが変更した場合はどうなります
updateRow()
か? の行をロックする方法はありますResultSet
か?
oracle - シン JDBC で Oracle コレクションを使用する場合のグローバリゼーションの問題
問題を要約するには:
- Java 1.5 (JDBC) での文字列の取得は、DB エンコーディングが Western ISO 8859-2 の場合に正常に機能します。
- 東ヨーロッパの ISO (ISO 8859-5 など) に切り替えると、通常の JDBC 文字列変換はすべて機能しますが、オブジェクトのネストされたテーブルなどのOracle コレクションに関係する変換は除きます。適切な文字列の代わりに、"1" などの単純な文字列でも "???" が表示されます。(3 つの疑問符) 代わりに。
次の 10.2.0.4 JDBC Jar ファイルを試しましたが、役に立ちませんでした。
- ojdbc14.jar
- orai18n.jar
また、CHAR と VARCHAR2 の両方を試しましたが、どちらも同じように動作します。
java - Spring-JDBC からの getResultSet
Spring の JDBC サポートを使用しています。JdbcTemplate (または SimpleJdbcTemplate) を使用してクエリを実行し、結果を ResultSet のインスタンスとして取得したいと考えています。
これを達成する唯一の方法は、次を使用することです。
このアプローチの明らかな欠点は、SqlRowSet の実装タイプについて (キャストによって) 仮定する必要があることですが、より良い方法はありますか?
背景情報...
結果を Bean のコレクションではなく ResultSet として取得する理由は、結果が Jasper レポートに直接渡されて表示されるためです。つまり、Java Bean は各行を ResultSet に一時的に格納する以外の目的で使用されず、Jasper レポートごとにそのような Bean を作成することはできれば避けたいと考えています。
乾杯、ドン
java - Javaからsqliteを使用して最後に挿入されたIDを取得する最良の方法は何ですか?
Javaからsqliteを使用して最後に挿入されたIDを取得する最良の方法は何ですか? Googleは私にさまざまな答えを与えています.last-insert-rowidを選択すると言う人もいます。他の人は、call statement.getGeneratedKeys() と言います。最適なルートは何ですか? (IDを返したいだけで、他の挿入などには使用しません。)
java - Java での PreparedStatements のロギング
クエリ自体ではなく、PreparedStatement がある場合に SQL (JDBC) エラーをログに記録することは、常に面倒なことの 1 つです。
あなたはいつも次のようなメッセージで終わります:
もちろん、値を取得し、疑問符を実際の値で解析/置換するためのヘルパー メソッドを作成することもできます (この質問の結果が得られない場合は、おそらくそのパスをたどるでしょう)。この問題は他の誰かによって以前に解決されました。また、私のために自動的にそれを行う汎用ログヘルパーがあるかどうか。
いくつかの回答の後に編集:
これまでに提供されたライブラリは、デバッグ用のステートメントをログに記録するのに適しているようです。これは間違いなく便利です。ただし、PreparedStatement 自体 (一部のサブクラスではない) を取得し、エラーが発生するたびにその SQL ステートメントをログに記録する方法を探しています。PreparedStatement の代替実装を使用して運用アプリを展開したくありません。
PreparedStatement の特殊化ではなく、ユーティリティ クラスを探していると思います。
ありがとう!