我有两张表,比如一张是会议表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;
}
还有另一张表是存放参与者的表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;
}
其他地方 你是把数据放到session里面还是使用的hibernate的持久化管理的?
1 循环,检查现有的数据,如果数据库里没有,则insert,如果有,则update,如果数据库有,本地有,则delete 这个一般用于有外键的情况,不能随便删除明细数据的情况。2 删除所有明细,重新insert明细数据
。谢谢大家了