我有两张表,比如一张是会议表t_meet,有MID(会议ID),标题,内容. 
还有另一张表是存放参与者的表t_partners,有id,名字,mid(该参与者所属的会议编号). 
一个会议记录对应多个参与者记录. 
当我要更新这个会议记录的时候,并且也在程序的另外地方修改了参与者人员列表. 
那么我在DAO实现类中要怎样才能实现对t_partners的更新. 
MeetBean.class中的定义: public class MeetBean { /** mid property 会议编号*/ 
private Long mid; 
/** partners property 参与者(存放的是参与者id组成的数组)*/ 
private String[] partners; 
/** title property 会议主题*/ 
private String title; 
//get/set方法就贴出来了 } 
DAO实现类中: 
/** 
* 修改会议 
* @param meetBean 
* @return 
*/ 
public boolean updateMeet(final MeetBean meetBean) 

String meetSql="update t_meet set title=?,starttime=?,endtime=?,boardroom=? where mid=?"; 
this.getJdbcTemplate().update(meetSql, new PreparedStatementSetter() 

public void setValues(PreparedStatement ps) throws SQLException { 
// TODO Auto-generated method stub ps.setString(1, meetBean.getTitle()); 
ps.setDate(2, new java.sql.Date(meetBean.getStartTime().getTime())); 
ps.setDate(3, new java.sql.Date(meetBean.getEndTime().getTime())); 
Long bid=Long.parseLong(meetBean.getBoardroom()); 
ps.setLong(4, bid); 
ps.setLong(5, meetBean.getMid()); 
} });//上面完成了我对t_meet表的修改 
                  //  如果我修改了参与者列表  对于t_partners我要怎么更新? 
                  
                return true; 
            } 

解决方案 »

  1.   

    学习参观的
    其他地方 你是把数据放到session里面还是使用的hibernate的持久化管理的?
      

  2.   

    更新1:n比较麻烦,有2个标准做法
    1 循环,检查现有的数据,如果数据库里没有,则insert,如果有,则update,如果数据库有,本地有,则delete  这个一般用于有外键的情况,不能随便删除明细数据的情况。2 删除所有明细,重新insert明细数据
      

  3.   

    跟数据库打交道的是hibernate,怎么弄成了spring?你使用hibernate中的关联就 可以了!
      

  4.   

    都没用。hibernate还没学。刚接触struts和spring。直接正常传参数过去了
      

  5.   

    ...恩,要抽时间去学习一下hibernate了。 
    。谢谢大家了