最近、友人がMybatisがテーブル構造を自動的に作成する機能を持っているかどうかを尋ねました。当然のことながら、彼らは、エンティティクラスでベットファイルを構成したり、マッピングファイルを作成したりすることで、システムが開始された後にテーブルを自動的に作成できると考えています。
Mybatisにはこの機能がないことを後悔して彼に話すことができます。彼の無関心を見て、私は彼を慰めることができます。
したがって、以下のシステムが開かれており、降りてみることができます~~
mybatis_buildtable_v0.2
https://git.oschina.net/sunchenbin/mybatis_buildtable_v0.2.git
プロジェクトアーキテクチャでは、SpringMVC+MyBatis+Mavenを使用しています。この機能は、モデルアノテーションを構成して、テーブルを作成し、テーブル構造を変更することです。現在、MySQLのみがサポートされています。焦点はMyBatis自動テーブルの作成の機能を強調することであるため、フレームワークについてあまり考える必要はありません。
使用仕様:
コアコードはモデルストアRepoにあります
1。SYSMYSQLCOLUMNS.JAVAオブジェクトは、MySQLデータ型で構成されています。ここでは、より多くのタイプが構成されているため、テーブルを作成するときに使用できるタイプが増えます。
2.Lengthcount.javaは、sysmysqlcolumns.javaで構成されたデータ型をマークするために使用されるカスタム注釈です。このタイプをマークするには、それぞれDateTime/Varchar(1)/10進(5,2)など、それぞれ0、1、2などのいくつかの長さが必要です。
3.Column.javaは、モデル内のフィールドをマークするために使用されるカスタムアノテーションでもあります。テーブルを作成するための基礎として、マークされていない場合、スキャンされません。フィールド名、フィールドタイプ、長さなどのプロパティの設定を設定するために使用されるいくつかの属性があります。詳細については、コードのコメントを参照してください。
4.Table.javaは、モデルオブジェクトをマークするために使用されるカスタムアノテーションでもあり、モデルがテーブルを生成した後にテーブル名を設定するために使用される属性名があります。注釈が設定されていない場合、モデルはスキャンされません。
OK、システムが開始された後、SysmysQlCreateTableManagerimpl.javaのcreatemysqltable()メソッドを自動的に呼び出します。そうです、これはテーブルの作成、削除、変更を担当するコアメソッドです。
Model-Store-Frontend/resources/config/autocreatetable.properties
このような構成ファイルがあることがわかります。これには2つの構成があります
1.mybatis.table.auto = update
2.mybatis.model.pack = com.sunchenbin.store.model
このシステムは2つのモードを提供します。
1. mybatis.table.auto =作成すると、システムが起動した後、すべてのテーブルが削除され、モデルで構成された構造に従ってテーブルが再構築されます。この操作は、元のデータを破壊します。
2。mybatis.table.auto =更新すると、システムはどのテーブルが新しく作成されているか、どのフィールドをタイプで変更する必要があるか、どのフィールドを削除する必要があるか、どのフィールドを追加する必要があるかを自動的に決定します。この操作は、元のデータを破壊しません。
3.mybatis.model.packこの構成は、テーブルを作成するためにスキャンするオブジェクトのパッケージ名を構成するために使用されます。
システムは、Mavenの使用を開始するように構成されています。 Webは、レポ、フロントエンド、モバイルに依存します。したがって、フロントエンドとモバイルを実行するには、最初にWebとリポジトリをインストールする必要があります
Mavenでプロジェクトを開始する方法については...これ以上は言いません。
上記は、MyBatisのテーブルの自動作成と、編集者が紹介したテーブル構造の更新の完全な説明です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!