我有一个bean,它有两个字段1: Map<String,String> client
2: String target
我必须把这个bean写入数据库。我有个问题 "INSERT INTO my_table(client_key ,client_value ,target) VALUES(?,?,?)"
所以每个键值对和字符串目标都应该插入到表中。
我该如何有效地做到这一点?批量更新文档仅显示为使用列表写入。
编辑:以下是我迄今为止尝试过的。
这是我的bean类:
public class FinalBean {
private Map<String,String> client;
private String target;
public Map<String, String> getClient() {
return client;
}
public void setClient(Map<String, String> client) {
this.client = client;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
}
这就是我试图编写bean的方式。
public void saveFinalBean(final FinalBean bean)
{
String insert_query="INSERT INTO my_table(client_key ,client_value ,target) VALUES(?,?,?)";
final List< Entry<String,String> > list= getMapAsEntryList(bean.getClient());
int[] updateCounts = jdbcTemplate.batchUpdate(insert_query,
new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
Entry<String,String> entry = list.get(i);
ps.setString(1, entry.getKey());
ps.setString(2, entry.getValue());
ps.setString(3, bean.getTarget());
}
public int getBatchSize() {
return list.size();
}
});
}
private List<Entry<String,String>> getMapAsEntryList(Map<String, String> client) {
List<Entry<String,String>> result=new ArrayList<Entry<String,String>>();
for(Entry<String,String> entry : client.entrySet())
{
result.add(entry);
}
return result;
}
}
暂无答案!
目前还没有任何答案,快来回答吧!