問題タブ [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.
java - mybatis: グローバル パラメーターの XML 構成でマッパー インターフェイスを使用する
接続文字列などのグローバル パラメーターを指定するための XML 表記が気に入っています。Mapper アノテーションも気に入っています。2 つを組み合わせようとすると、この例外が発生します。
2つを組み合わせる方法はありますか?グローバル構成に XML ファイルを使用したいのですが、mybatis に Mapper インターフェースを考慮してもらいます。
問題は、SqlSessionFactoryBuilder().build() が Reader (XML 構成を渡すために使用したい) または Configuration オブジェクト (私をaddMappers()
助けることができるメソッドを持っていることがわかります) のいずれかを取ることです-しかし、私はしません2つを組み合わせる方法を理解してください。
java - 注釈付きのmysqlでmybatisを使用して挿入でIDを返す方法
- Postgresについては、この関連する質問を参照してください。何らかの理由で、解決策がうまくいきません。挿入ステートメントの戻り値は常に「1」です。
- XML ベースのソリューションについては、この他の質問を参照してください。XML なしで同じことをしたいと思います。レコードを挿入し、挿入したばかりのレコードの新しい自動生成 ID を見つけます。
一致する注釈が見つかりませんでした<selectkey>
(この未解決の問題を参照してください)。
mybatis コードを調べると、INSERT
が を介して実装されていることがわかりUPDATE
、常に挿入された行数が返されます! だから...ここで何かが完全に欠けていない限り、現在の(3.0.3)実装を使用してこれを行う方法はありません。
java - MyBatisを使用してオブジェクト内のコレクションを永続化する
POJOクラスがあります:
次に、1つのチケットといくつかの場所を作成します。
そして今、私はそれをDBに保存したいと思います:
MapperConfig.xmlで、次の行を記述します。
リストの場所を自動モードで保存するにはどうすればよいですか?MyBatisは私のためにそれを保存できますか?または、 foreachを使用して手動で繰り返し、すべての場所を手動で挿入する必要がありますか?
助けてくれてありがとう。
java - myBatisとSybaseデータベースを使用するJavaプロジェクトの作成
誰かがsybaseデータベースを使用してibatisを設定するためのいくつかのまともなチュートリアルの行き先を教えてくれませんか。
これに関する情報はほとんどないようで、そのほとんどはmysqlを使用していますが、これは良くありません。
mybatis - myBatis からマップのリストを生成することは可能ですか?
たとえば、select id, name, age, address from staffs
Staff オブジェクトのリストではなく、 query があります。マップのリストが欲しいのですが、
それは可能ですか、可能であればどうすればよいですか?ありがとう。
java - ひどいデータベース設計で MyBatis を動作させるには助けが必要
だから私はプロジェクト(JSF2、Spring3 Core、MVC、Webflow、MyBatis3、RichFaces、およびレガシーOracle 10g)に取り組んでいます。私のすべての問題の原因は、データベースの設計に関係しています。問題は、DB テーブルの大部分でスキーマが変更されていることです (設計が悪いのでしょうか?)。したがって、余分な列の追加と削除をサポートできる必要があります。
これに対応するために、基本的にハッシュマップを拡張するだけのカスタム「ユニバーサル」ドメイン オブジェクトに MyBatis をプルするようにしました。私の現在の問題は、これらのハッシュマップ オブジェクトを更新することです。うまくいく方法はあるはずなのですが、MyBatis に協力してもらえそうです。HashMap.entrySet() と MyBatis を使用してみましたが、役に立ちませんでした。例えば。
カスタム TypeHandler を試してみましたが、setParameter() では、必要なことを行うのに十分なアクセス権が得られません。ResultHandler では個々の結果に十分にアクセスできなかったので、それも使用できませんでした。
これで、Obj.createUpdateSqlString() のようなことを実行して、リテラル文字列としてマッパーに挿入できることがわかりましたが、これはちょっとしたハックであり、SQL インジェクションに対して無防備なままです。言うまでもなく、それには多くの文字列をエスケープする必要があり、可能な入力の広い範囲を考慮する必要があり、すべての可能性がカバーされていない限り、いくつかの深刻なバグへの扉が開かれます。
それで、これを行う確立された方法はありますか?または、少なくとも中途半端な方法ですか?多くの筋金入りの MyBatis 支持者が、MyBatis が適切に処理できない状況にまだ遭遇したことがないと言っているのを聞いたことがあります。だからMyBatisの専門家は、私を助けてください!!
java - DB に FK を追加した後、myBatis の挿入/更新関数がコミットを必要とするようになったのはなぜですか?
永続化のために myBatis を使用するプロジェクトがあります。以下の方法「A」は、いくつかの外部キーを追加し、テーブルを myISAM から innoDB に変換するまでは問題なく機能していました。変換後、メソッド "A" は警告なしでログに記録されずに失敗します。変換後、メソッド「B」のみが正常に挿入されます。どちらの方法でも正しい SQL がログに書き込まれますが、「B」のみが機能します。
今コミットする必要があるのに、以前はコミットする必要がなかった理由を誰か教えてもらえますか?
java - 春のibatis mysql断続的な非同期の問題
私は春にibatisを使ってmysqlに書き込んでいます。
断続的なバグがあります。プロセスの各サイクルで、データベースに 2 つの行を書き込みます。次のサイクルでは、前のサイクルから行を読み込みました。ときどき (30 に 1 回、より頻繁に、またはそれ以下の頻度で) データベースから 1 行しか返されません。
考えられるすべてのキャッシュをオフにしました。私の sqlmap-config.xml には次のように書かれています:
いくつかの非同期性がありますか、そうでなければ、Spring、ibatis、または欠落している mysql ドライバーへのキャッシュがありますか?
spring 3.0.5、mybatis 2.3.5、mysql-connector-java 5.0.5 を使用
編集1:
接続のプール (c3p0) を使用していることが原因でしょうか? 読んでいるときに挿入がまだ実行されている可能性はありますか。奇妙ですが、非同期を明示的に宣言しない限り、すべてが同期的に発生すると思いましたか?
java - IbatisSqlTemplateClientMapの独自のコールバックを作成する方法
の独自のコールバックを作成する方法を知りたいのですがSqlMapClientTemplate
。具体的には、バッチ呼び出しを実行できるようにします。
android - Android アプリと myBatis
myBatis (iBatis 3) を Android アプリケーションで使用したいと考えています。誰かがそのようなことを試したことがありますか、またはこれに関するリソースを知っていますか?