問題タブ [spring-mybatis]
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.
mysql - mysqlの「case when then」で「select」を使用する方法は?
私のmysqlテーブルは次のようなものです:
start と end の 2 つの引数があります。私が欲しいのは次のようなものです。
結果を取得するためのSQLの書き方は?おそらく「case when then」は良い選択ですが、書き方がわかりません。
spring-batch - Spring Batch で AsyncItemWriter を理解し、チャンクが MyBatis で書き込まれるのはいつですか?
以下では、Spring Batch ジョブのコミット間隔が 1000 に設定されているため、書き込みは一度に 1000 ずつデータベースにコミットされていますか? MyBatis SqlSessionFactory は、BATCH 実行として定義されています。
DEBUG ログで次のことに気付きました。
上記の DEBUG ステートメントでは、接続を開いていると思います。次に、insert ステートメントの下に 1,000 の 1 つのバッチが挿入されます。または、挿入ごとに MS SQL サーバーへの新しい接続が開かれましたか?
最後に、トランザクションを閉じています(また、MS SQLサーバーへの接続を閉じているのか、挿入ごとにそれを行っていたのかはわかりません)。ここでも、データベースへの 1 つの接続を使用して、1,000 レコードをバッチで挿入したいと考えています。
また、代わりに AsyncItemWriter を JdbcBatchItemWriter に委任できますか?設定した MyBatis よりも高速でしょうか? 以下のコードでは、MyBatis マッパーを使用して 2 つの個別のテーブルに書き込む CompositeItemWriter にデリゲートします。
私の使用例は次のとおりです。mec_mdw データベース テーブルから 700 万件のレコードを読み取って検証する必要があります。
プロセッサによって無効と見なされる無効な mec_mdw レコードは、mec_kickout テーブルに挿入されます。また、その特定のレコードの検証失敗の理由が mec_kickout_reason テーブルに挿入されます。最初に読み取った mec_mdw テーブルにも、処理の最後にいくつかの列が更新されます。
これは私がこれまでに非同期処理と書き込みを使用して行ったことです。現在、読み取られた mdw レコードを 2,500 のみでテストしています。このテストでは、2,500 レコードすべてが意図的に無効であるため、mec_kickout テーブルに挿入されています。 mdw テーブル 2,500 行も更新されています。これはすべて、16 Gb の RAM を搭載した 8 コア CPU のラップトップで約 50 秒で実行され、MS SQL サーバー データベースはネットワーク コールで接続できます。しかし、それがより速くできるかどうかはまだ完全にはわかりません。
プロセッサにはビジネス ロジックが含まれますが、現時点では、MecMdw ドメイン オブジェクトで null プロパティを検索する Bean 検証のみが含まれます。最終的には、他のテーブルでアカウント ID を検索するためのアダプター コードも必要になります (データベース接続の喜びが増します!)。このアダプターの DAO ロジックはプロセッサに組み込まれると思います
MdwWriter と KickoutWriter は、MyBatis DAO を使用してデータベースに書き込みます。
ここに KickoutWriter.java があります
java - MyBatis と MySql を使用してプログラムでテーブルを作成する
テーブル名を変数として渡すだけでテーブルを動的に作成するメソッドを作成したいと考えています。xml マッパーを定義しました
そして、私のJava Interface Mapperは単純です:
しかし、私が自分のインターフェースを呼び出すとき
次の例外が発生します。
代わりに、テーブル名に ``を追加してクエリを変更すると:
私は得る
理由はありますか?
spring-mvc - クラス外でjoda DateTimeを返す
mybatis を使用して SQL クエリから単一の DateTime を返す方法を理解するのに問題があります。
私のインターフェースの関連部分:
私のマッパーxmlの関連部分:
このエラーが発生するため、私の問題はプロパティ = "time" にあるようです:
DateTime、datetime、dateTime、org.joda.time.DateTime などのさまざまなプロパティ名をすべて試しましたが、すべて同じエラーが発生しました。
何か案は?
指摘されたように更新 JodaTime は不変ですが、これは機能するはずです:
spring - Spring Boot 1.2.5.RELEASE & Spring Security 4.0.2.RELEASE - セキュリティコンテキストの初期化前に構成ファイルをロードする方法は?
Spring で問題に直面しています: Spring Security ver. から移行しています。3.2.7.RELEASE
に4.0.2.RELEASE
。古いバージョンではすべて正常に動作していましたが、ロードに関して問題が発生しましたDataSource
。
アーキテクチャについて説明します。
アプリケーションは SAML と LDAP の両方のメカニズムで保護されています (SAML 構成は、 https ://github.com/vdenotaris/spring-boot-security-saml-sample/blob/master/src/main/java/ にある構成と非常によく似ています) 。 com/vdenotaris/spring/boot/security/saml/web/config/WebSecurityConfig.java )。
必要なデータを取得するには、どちらもデータベースに接続する必要があります。MyBatis と Spring Mybatis を使用して、必要なデータを取得します。そこからが問題の始まりです。
私のDAO構成クラスは次のようになります。
以前のバージョンではうまく機能していましたが、現在はマッパーの読み込みに問題があり、Bean creation exception on FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'someMapper' defined in file [<filename>]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
何度も何度も (これは私の問題ではなく、Spring/MyBatis の既知のバグです)。
デバッグを行ったところ、興味深いことがわかりDaoConfiguration
ました。ここでは構成として扱われていないようです! つまり:追加すると
この構成では、注釈付きメソッドの「通常の」呼び出し@Bean
により、適切なインターセプターが呼び出されるはずです。ここでは、この機能が欠けています。
私の予測では、この構成クラスはまだ適切にラップされておらず、Spring Security はそれによって生成された Bean を既に必要としています。
Spring Security が初期化される前に、この構成を適切にロードするソリューションはありますか? それとも、私は間違っていて、何かが欠けているのですか(そうではないかもしれません)明らかですか?
mysql - Mybatisの選択SQLで数値型を連結する方法は?
検索数のパラメータに応じて結果を選択したい、例えば を渡す 7
と、 のようなSQL文が欲しいselect * from student where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(CREATETIME)
,今Mybatisで、このように書いてみたり、また に変更${pd.intervalDay}
したりしたいの#{pd.intervalDay}
ですが、間違っています。それを変更?