向数据库中插入数据,如果数据存在就执行更新,如果不存在就插入数据。这个怎么整,最好给个例子代码,不胜感激

解决方案 »

  1.   

    这个看看API,jdbc的Statement的executeUpdate()方法吧,存在就更新,不存在就创建或者删除
      

  2.   

    this.getHibernateTemplate.saveOrUpdate();如果有就更新,没有就插入
      

  3.   

    我看了下API executeUpdate() 这个执行什么指令还是根据你给出的什么query吧
      

  4.   

    根据主键先查询,有返回的话就在执行更新语句,没有row返回就执行插入语句
      

  5.   

    我现在要做个功能,从Excel中导入一批数据,如果数据库中存在了就进行更新,不存在的就插入,完事在界面显示出来。就卡判断更新还是插入那了。一批数据如何去数据库中找是否存在了,这个不会做。
      

  6.   

    你根据什么标准来判断数据是否已经在数据库存在的?是根据‘名称’,‘号码’还是其他的?这个只有你自己知道。
    //举个例子
    String sql="select count(*) from user where username='liuwei232635492'";
    rs = stmt.executeQuery(sql);
    int count=0;
    while(rs.next()){
    count=rs.getInt(0);
    }
    if(count>0){
    //已存在,update
    }else{
    //不存在,insert
    }
      

  7.   

    比如那个username是判断的条件,但我是从Excel里读取了字段的一批值,不是固定的值,这个怎么整。还有应该是rs.getInt(1)吧。
      

  8.   

    你这个情况,最优的解决方案应该是让给数据库来帮你做这件事情,也不需要写什么存储过程,简单的例子,我这里是以mysql数据库为例若存在该条数据,则update该条数据,若不存在,则更新该条数据,需要设置依据数据的unique或者primarykey,然后如下,INSERT tb_agent_flag (ip,statuss,is_calculated) values ('110.196.11.37','running','true') ON DUPLICATE KEY UPDATE statuss='end',is_calculated='bsbb';
    例如我这里设置的ip为unique,则若出现重复的ip地址110.196.11.37的数据时,则更新该条数据的字段为statuss='end'
      

  9.   

    有些数据库有replace语句,那直接用replace就可以。
    如果没有就在程序里处理,先执行select如果有记录就update否则就insert。
      

  10.   

    比如那个username是判断的条件,但我是从Excel里读取了字段的一批值,不是固定的值,这个怎么整。还有应该是rs.getInt(1)吧。比如那个username是判断的条件,但我是从Excel里读取了字段的一批值,不是固定的值,这个怎么整。还有应该是rs.getInt(1)吧。
    是rs.getInt(1),我写错了。
    一批值写个循环String[] arr = ...;//存放多个username的数组
    for(String username:arr){
    String sql="select count(*) from user where username='"+username+"'";
    .....
    ....
    }
      

  11.   

    首先你要弄明白凭什么去判断这条记录在数据库中存在还是不存在 id或者联合主键?然后才能去解决
    1.用jdbc根据要判断的条件,slect count(*).........;结果大于0就 插入
    2.根据id,用hibernate的saveorupdate或者merge方法。(具体怎么用可以去网上看下)
      

  12.   

    用hibernate的话就使用SavaOrupdate了