现在是这样的!我有两张表!AB表!我点菜单栏查询A表的全部信息,点增加查询B表的全部信息,然后选中某一条添加到A表,然后批量选中添加到A表!
可是我现在保存一条数据时是先获得值!然后把值给一个变量,再把这个变量set给字段
请问各位大神!批量添加该如何实现啊!跪谢!批量添加

解决方案 »

  1.   


    我先试着理解一下你的需求、
    是不是在a表的信息列表页面、点击添加
    弹出b表的全部信息、“然后选中某一条添加到A表,然后批量选中添加到A表!” 是不是这样理解的、用户可以选择一条b表的信息、也可以选择多条b表的信息?至于你说的:
    “可是我现在保存一条数据时是先获得值!
    然后把值给一个变量,
    再把这个变量set给字段”
    是不是说、选择好了b表的数据、点击添加的时候要set一个值、比如时间或者操作人什么的?是否只是一个值、并且选择很多条的时候、这个值也不会变(时间值的话、不考虑这种情况)
    先跟你了解一下需求、然后在给你解决问题!
      

  2.   

    你这意思是不是把B表的信息批量插入A表中?
    你是用什么框架,JDBC,还是hibernate.JDBC
    void addBatch(String sql)
                  throws SQLException将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。通过调用方法 executeBatch 可以批量执行此列表中的命令。 hibernate类似这样:
    beginTransaction();
    getHibernateTemplate().execute(new HibernateCallback(poList) {
    public Object doInHibernate(Session session) throws HibernateException {
    Object[] es = this.val$poList.toArray();
    for (int i = 0; i < es.length; ++i) {
    session.saveOrUpdate(es[i]);
    if (i % GenericDaoImpl.this.batchSize != 0) {
    continue;
    }
    session.flush();
    session.clear();
    }
    return null;
    }
    });
    commitTransaction();
      

  3.   

    上面的理解完全正确!我做的保存的单条非常的简陋!就是先获得ID然后找到这条信息!然后把这条信息里的值用多个变量接收(具体有几个变量就看这个表里有几个列)然后把这些变量又分别set到A表的列中
      

  4.   

    三楼!原谅小弟这个初学者!我是用的JSP+tomcat+S2SH+sqlservice2000! 我看不懂你的方法!是写在Action里吗?
      

  5.   


    可以考虑这样做:
    一、把b页面选中的值的唯一标识(如:主键)传到后台、多选的时候就用特殊符号隔开、如"1,2,3,5"这样!
    二、后台解析前台传入的值、格式必须正确:1,2,3,5 这样能运行下面的sql。
    三、insert into A表 select b.要插入的字段...  from B表 b where b.id(主键) in(前台传入的id值);用insert into select 语法、搞定!
    但是记住、前台传入的、必须是能保证能select查询出的数据跟选择的数据一致!
    LZ可以这样试试!
      

  6.   

    关键是我页面传过来的ID不保存到A表中
      

  7.   


    你传过来的id是为了去查询的!
    你把整个b表都查询出来了、想保存什么到a表就保存什么字段就行了!
      

  8.   

    你的语句有问题!!!
      
    insert into wuliao select b.name,b.danwei,b.xiaghao,b.yanse from stock_sum b where 
    b.stock_id in (3)如果有多个就是
    b.stock_id in (3,4,7)不是你这样用的——b.stock_id in b.stock_id = 3
    这样是错的!