gpt4 book ai didi

java - 使用带有动态表名和对象的 myBatis

转载 作者:行者123 更新时间:2023-11-30 08:26:16 24 4
gpt4 key购买 nike

我将要使用myBatis 创建一个动态SQL 插入,其中表名和保存参数的对象是不同的。像这样:

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

接口(interface)方法是这样的:

@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...
}

不幸的是我找不到如何做到这一点,我找到的最好的工作方式是当表名是对象的属性时,所以 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})

关于java - 使用带有动态表名和对象的 myBatis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com