なぜmybatisが必要なのですか
MyBatisはJava ORMフレームワークであり、ORMは開発を簡素化するために出現しました。初期開発方法は、プログラムにSQLステートメントを作成するか、SQLストアドプロシージャを呼び出すかのいずれかで、ビジネスロジックとデータベースクエリロジックが分離されたことでした。これにより、言語ロジックとSQLロジックを切り替える必要性が発生し、非効率的な開発が生じます。したがって、一連のORMフレームワークが登場しました。 ORMフレームワークは、データベーステーブルとJavaオブジェクトに対応しています。データベースを操作する場合、いくつかの条件を設定し、いくつかの属性のみを設定するなど、オブジェクトのJavaオブジェクトを操作するだけです。
なぜmybatisジェネレーターが必要なのか
MyBatisフレームワークはありますが、MyBatisの学習には学習コスト、特に必要なXMLファイルの構成も必要です。これは非常に面倒で、構成でエラーが発生します。不可解な間違いや生成する必要がある大量のオブジェクトがある場合、しばしば、生きて心をさまようことに消極的であるという感覚があります。したがって、MyBatisジェネレーターが生まれました。
MyBatis Javaオブジェクトに大量のテーブルの生成を完了するために、単純な構成のみが必要です。高速であるだけでなく、エラーもありません。これにより、開発者はビジネスロジックの開発に真剣に集中できるようになります。
公式のMyBatisジェネレーター機能は比較的単純であり、開発で必然的に使用されるわずかに複雑なページネーション関数、バッチインサート機能などには実装されていませんが、成熟したプラグイン機能がサポートされています。
私は通常、githubに使用するmybatisジェネレーションツールを配置しました。これは、ページネーション、バッチ挿入、シリアル化関数を統合しています。ここで確認して、すでに使用方法を紹介しています。
MyBatisジェネレーターファイル構造
生成されたファイルには3つのカテゴリが含まれています。
1。モデルエンティティファイル、データベーステーブルはモデルエンティティを生成します。
2.ModeLexampleファイル、このファイルとエンティティファイルは同じディレクトリにあり、主に条件付き構造のクエリに使用されます。
3.マッパーインターフェイスファイルとデータ操作方法は、このインターフェイスで定義されています。
4.マッパーXML構成ファイル。
構成ファイルでファイル生成パスを構成し、対応するパッケージ名を設定して、対応するディレクトリ構造とファイルを生成します。生成されたディレクトリをテストディレクトリに設定し、エンティティパッケージ名はcom.fengzheng.dao.entityです。インターフェイスパッケージ名はcom.fengzheng.dao.mapperです。
コードの書き方
すべてのメソッド呼び出しは、生成されたインターフェイスファイルからのものです。春MVCでは、発信者に宣言する必要があります。例として、ブラックリストインターフェイスを使用すると、生成されたインターフェイスファイルはBlackListipMapperであるため、発信者は次のようにこのインターフェイスを宣言する必要があります。
@autowiredprivate blacklistipmapper blacklistipmapper;
データベースクエリ
クエリは最も一般的に使用される関数です。次の方法は、IPが特定の値であるレコードを照会することです。主キーを知っている場合は、SelectByPrimaryKeyメソッドを使用できます。
public blacklistip get(string ip){blacklistipexample example = new blacklistipexample(); example.createcriteria()。 blacklistiprist.get(0);} return null;}メソッドを呼び出す方法は似ています。詳細については、関連するドキュメントの導入を参照してください。
選別
public BlackListip get(String IP){BlackListipexample example = new BlackListipexample(); example.SetOrderByClause( "Create_Time DESC"); //作成時間example.createcriteria()。andipequalto(ip); list <blacklistip> blacklistip> blacklistmapper.selectbyexample(example); if(blacklistiprist!= null && blacklistiprist.size()> 0){return blacklistiplist.get(0);}ページネーション
public PageInfoリスト(アカウントアカウント、PageInfo PageInfo、String StartTime、String Endtime){account.setisdel(sysparamdetailconstant.is_del_false); accountexample example = getCondition(account、indenttime); if(null!= pageinfo && null!= pageinfo.getpagestart( {example.setlimitclausestart(pageinfo.getpagestart()); example.setlimitclausecount(pageinfo.getpagecount());} setorderbyclause( "Create_time desc"); list <counce_time> list = accountmapper.selectbyexample(例); int totalount =; countmapper.countbyexample(example); pageinfo.setlist(list); pageinfo.settotalcount(totalcount); return pageinfo;} a = xや(b = xxまたはb = xxxなどのクエリ条件を実装する
コードを自動的に生成するのは便利ですが、すべてに利点と短所があります。 MyBatisジェネレーターには、テーブル結合関数を生成する方法がないため、手動でのみ追加できます。 a = xや(b = xxまたはb = xxx)などの条件付きスプライシングが次のように実装されています。
AccountExample AccountExample = new AccountExample(); AccountExample.criteria Criteria = AccountExample.createCriteria()。AndTypeeQualto( "4"); Criteria.AddCriterion( "(id =%dまたはid =%d)"、34,35))
ただし、小さなコードを変更し、org.mybatis.generator.codegen.mybatis3.modelパッケージの下の524行目Generatorを変更する必要があります。 method.setVisability(javavisability.public);
変更はGithubに同期されています。
上記は、編集者が紹介したMyBatisジェネレーターのコードと使用法です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!