簡體   English   中英

將myBatis與動態表名和對象一起使用

[英]Using myBatis with dynamic table name and object

我將使用myBatis創建動態SQL插入,其中表名和保存參數的對象不同。 像這樣:

INSERT INTO ${tablename} (column1, column2) VALUES (#{column1}, #{column2})

接口方法是這樣的:

@Insert(CREATE)
@Options(useGeneratedKeys = true, keyProperty = "id", flushCache = true)
public int write(String tablename, Object object) throws Exception;

對象保存字段值的位置:

class Object {
  int id;
  String column1;
  String column2;

  getters, setters...
}

不幸的是,我找不到方法,發現的最佳和可行的方法是表名稱是Object的屬性,因此myBatis可以通過這種方式讀取值。 由於某些實際原因,我想避免這種方法,也許有人有更好的主意? 謝謝。

像這樣使用@Param批注

@Insert(CREATE)
@Options(useGeneratedKeys = true, keyProperty = "object.id", flushCache = true)
public int write(@Param("tablename") String tablename,
                 @Param("object") Object object) throws Exception;

和查詢

INSERT INTO ${tablename} (column1, column2) VALUES (#{object.column1}, #{object.column2})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM