我希望能够从 spring 属性配置我的数据库表/列名称。我通过声明性 API 使用 JDBI 进行数据访问。我的代码示例目前如下所示:
import something.model.User;
import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
public interface UserDAO {
String TABLE_NAME = "user";
String ID = "ud";
String EMAIL = "email";
String PASSWORD = "password";
String FIRST_NAME = "firstName";
String LAST_NAME = "lastName";
String TYPE = "userType";
@SqlQuery("SELECT " + ID + ", " + EMAIL + ", " + PASSWORD + ", " + FIRST_NAME + ", " + LAST_NAME + ", " + TYPE + " " +
"FROM " + TABLE_NAME + " " +
"WHERE " + ID + " = :" + ID
)
User findUserById(@Bind(ID) int id);
}
我想使用属性而不是此处定义的常量,类似于String TABLE_NAME = "${myConfig.table.user.name}";
. 但是,我无法在网上找到任何关于这是否真的可以做到的信息。我有一种预感,这是不可能的,但为了确定我决定问一下,也许有人对此了解更多。任何建议将不胜感激!