問題タブ [jdbctemplate]
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.
dao - jdbctemplate query() vs entityManager createQuery()
これらの方法の本質的な違いは何ですか?
JdbcTemplate のquery()と EntityManager のcreateQuery() ?
私が理解しているように、両方ともクエリを実行しますか?
spring - プログラムで生成された主キーでSpringのKeyHolderを使用する
SpringのNamedParameterJdbcTemplateを使用して、テーブルへの挿入を実行しています。テーブルは、シーケンスでNEXTVALを使用して、主キーを取得します。次に、この生成されたIDを私に返したいと思います。私は次のようなSpringのKeyHolder実装を使用しています。
ただし、このステートメントを実行すると、次のようになります。
私が欠けているアイデアはありますか?
java - 読み取り専用モードで JdbcTemplate 接続を開きますか?
JdbcTemplate 接続を読み取り専用モードで開いて、基になるデータ ソースを変更できないようにすることはできますか?
java - JDBCTemplate を使用してスレッドにデータベースへの再接続を x 回試行させる方法
次のように、JDBCTemplate を使用してデータベースに接続しようとしている単一のスレッドがあります。
上記のコードが DataAccessException または SQLException をスローした場合、スレッドが数秒間待機して再接続を試み、さらに 5 回試行してから断念するようにしたいと考えています。どうすればこれを達成できますか?また、実行中にデータベースがダウンして再び起動した場合、例外をスローして終了するのではなく、プログラムがこれから回復して実行を継続できるようにするにはどうすればよいですか?
前もって感謝します。
oracle - Spring JdbcTemplateを使用してテーブルを切り捨てる方法は?
Springでテーブルを切り捨てようとしています:
エラーを取得します:
原因:org.springframework.jdbc.BadSqlGrammarException:StatementCallback; 不正なSQL文法[TRUNCATETABLERESULT_ACCOUNT]; ネストされた例外はjava.sql.SQLExceptionです:予期しないトークン:ステートメント[TRUNCATE]のTRUNCATE
何か案は?
java - jdbctemplate と楽観的ロック
私がHibernateにいるプロジェクトでは、Spring jdbctemplateが混在しています。楽観的ロックを追加しました。Hibernate はバージョン管理でうまく機能しますが、バージョン管理も使用するには、このすべての jdbctemplate コードを変換する必要があります。
LockingJdbcTemplate (SimpleJdbcTemplate など) のようなものはありますか? 一般的な更新メソッドを実装できると考えていました
私ができる場所:
- version=version+1 を columnSql に追加
- バージョンを追加=? whereSqlへ
- パラメータ内の正しい場所にバージョン番号を追加します(別のパラメータがその値を渡すことを強制しています)
- 正確に 1 つのアイテムが更新されたことを確認し、それ以外の場合は StaleObjectStateException をスローします
jdbctemplate をラップして、私に似たようなことをするライブラリはありますか? 存在するものを発明したくありません... :)
multithreading - jdbctemplate コンストラクター インジェクションを使用した複数の DAO はマルチスレッドのリスクになりますか?
コンストラクター インジェクションを介して jdbcTemplates を DAO クラスに渡している大規模なマルチスレッド webapp があります。これはマルチスレッドのリスクですか? 代わりにデータソースだけを渡す必要がありますか?
java - JDBCTemplate で準備済みステートメントを使用する
JDBC テンプレートを使用しており、準備済みステートメントを使用してデータベースから読み取りたいと考えています。.csv ファイルの多くの行を繰り返し処理し、すべての行で、対応する値を使用していくつかの SQL 選択クエリを実行します。
データベースからの読み取りを高速化したいのですが、JDBC テンプレートをプリペアド ステートメントで動作させる方法がわかりません。
PreparedStatementCreatorとPreparedStatementSetterがあります。この例のように、両方とも匿名の内部クラスで作成されます。しかし、PreparedStatementSetter クラス内では、準備済みステートメントで設定したい値にアクセスできません。
私は.csvファイルを繰り返し処理しているので、それらを知らないため、それらを文字列としてハードコーディングすることはできません。また、コンストラクターの引数がないため、PreparedStatementSetter に渡すこともできません。また、値を final に設定するのもばかげています。
私は、準備済みステートメントの作成がかなり単純であることに慣れていました。何かのようなもの
このJava チュートリアルのように。
java - JdcbTemplate スタンドアロンの使用
DBにアクセスするためにJdbcTemplateを使用することを検討していますが、各クラスが使用できるさまざまなDB接続があるため、jdbcTemplateを注入することはオプションではありません。したがって、
取引ポリシーはどうなりますか?DB で自動コミットがオフになっています。
java - $ 記号付きの msql テーブル名
Mysql 5 db にドル記号「$」を前に付けた名前のテーブルがあります。つまり、テーブル名 $MYTABLE
Spring 3.0 JdbcTemplate を使用して選択クエリを実行していますが、動作させることができませんでした。
すなわち
これは、おそらく $ 記号が原因で、常に InvalidSqlException をスローします。パラメータなしで通常のクエリを実行すると、つまり.
その後、すべてが機能します。
jdbcTemplate を使用して $ 記号をエスケープするにはどうすればよいですか?
--編集、私がやったこと-
テーブル名「$AAPL」を jdbcTemplate に渡す代わりに、SQL 文字列を手動で作成するだけです。