在数据库中使用foreach进行多次插入是一种好习惯吗?

时间:2017-07-25 20:58:59

标签: java mysql jdbc

我有一条消息和许多收件人,我想知道的是当我想要保存它时...对于每个收件人使用Statement.execute()是否合适,或者它可以被认为是“硬” -coding“

   public void save(Int id,String subject, String body, ArrayList<String> emails){

    String sq = "CALL saveMessage(?,?)";
    CallableStatement st = this.connection.prepareCall(sq);
    st.setInt(1,id);
    st.setString(2, subject);
    st.setString(3, body);
    st.execute();

    for(String e:emails){

       query = "CALL saveRecipientByMessage(?,?)";
       CallableStatement st2 = this.connection.prepareCall(query);
       st2.setInt(1,id);
       st2.setString(2,e);
       st2.execute();
    }
}

感谢阅读。

1 个答案:

答案 0 :(得分:2)

foreach没问题,但这里更好的JDBC做法是使用批处理。