【发布时间】:2016-12-16 07:31:20
【问题描述】:
我从来没有遇到过这样的问题,谷歌没有帮助。
我使用 Spring Framework,JdbcDaoSupport,getJdbcTemplate().update() 方法。
我有一个带有 2 个可选参数的动态查询。
不知道输入动态对象的正确方法。 我就是这样尝试的:
StringBuilder sbUserRegQuery = new StringBuilder();
sbUserRegQuery.append("INSERT INTO users (username, password , email, enabled, datetime_condo_changed, datetime_last_login");
if(user.getCondo_id()!=null) sbUserRegQuery.append(", condo_id");
if(user.getProvider()!=null) sbUserRegQuery.append(", provider");
sbUserRegQuery.append(")");
sbUserRegQuery.append(" VALUES ( ?, ?, ? , ? , ?, ?");
if(user.getCondo_id()!=null) sbUserRegQuery.append(", ?");
if(user.getProvider()!=null) sbUserRegQuery.append(", ?"); //default - "local"
sbUserRegQuery.append(");");
Object regObject = new Object[]{
user.getUsername(), PasswordEncoderGenerator.main(user.getPassword()), user.getEmail(), enabled, user.getDatetime_condo_changed(), currentTimeStamp, user.getCondo_id()
};
int row = getJdbcTemplate().update(sbUserRegQuery.toString(), regObject, user.getCondo_id(), user.getProvider());
即我试图在regObject 之后插入动态对象。
但是,在这种情况下,动态对象的顺序可以改变,查询失败..
如何解决这种情况?
【问题讨论】:
标签: java sql spring postgresql spring-mvc