あなたはMyBatisのXMLコードでテーブルを選択することができます。
<choose>
<when test="uid gt 1000000">
<bind name="tableName" value="t_user_address_book2" />
</when>
<when test="uid gt 500000">
<bind name="tableName" value="t_user_address_book1" />
</when>
<otherwise>
<bind name="tableName" value="t_user_address_book0" />
</otherwise>
</choose>
それとも、Javaでテーブル名を計算し、それをパラメータとして渡すことができます。
任意の値を指定するには、クエリーの一部になるように値を置き換え、解釈/バインド/エスケープされないように値を#
の代わりに$
の表記で参照する必要があります。パラメータは次のとおりときマッパーインターフェイスワットを使用しても
@Insert({"<script>",
"<choose> ...",
"INSERT ..."
"</script>"
})
:
INSERT INTO ${tableName} ...
XMLの使用にもかかわらず、あなたは注釈が<script>
タグでクエリを囲むに固執することができますあなたは以上の1があるとパラメータの名前を指定する必要がi番目の注釈、:それが良いになりながら
@Insert("INSERT INTO table VALUES(#{uid}, #{userAddressBookMsg.propertyName1})")
int upsert(upsert(@Param("uid")Long uid, @Param("userAddressBookMsg") UserAddressBookMsg userAddressBookMsg);
はしかし、それはあなたがボリュームの問題のために複数のテーブルに分割したいようだ、これは処理するための非常に複雑です単一のテーブルを保持し、インデックス作成とパーティショニングについてDB側を見てください。
最初のステートメントは完全に偽であり、コードスニペットはコンパイルされません。初期化されていない静的フィールド+メソッド – blackwizard