Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中检索与列值对应的单行_Java_Rows - Fatal编程技术网

在java中检索与列值对应的单行

在java中检索与列值对应的单行,java,rows,Java,Rows,我有一个方法,通过该方法,我可以检索与列名(即beam_current)对应的一些行。现在对应于beam_current,我只希望显示一行。但现在,有时会检索与beam_current值对应的多行 我的输出显示为- 这里对应于beam_current 50,出现了两行,以cornsilk颜色显示。现在我希望显示这两行中的任何一行。如何执行此操作 我的java类代码是- public List < Comaprision > refarray_vac1(String date) thr

我有一个方法,通过该方法,我可以检索与列名(即beam_current)对应的一些行。现在对应于beam_current,我只希望显示一行。但现在,有时会检索与beam_current值对应的多行

我的输出显示为-

这里对应于beam_current 50,出现了两行,以cornsilk颜色显示。现在我希望显示这两行中的任何一行。如何执行此操作

我的java类代码是-

public List < Comaprision > refarray_vac1(String date) throws SQLException, ParseException {

  st_jsp.clear();

  List < Double > slist_user = new ArrayList < Double > (map1.keySet());
  String s_user = StringUtils.join(slist_user, ',');

  try {
    con = getConnection();
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

    String vs1 = "select b.logtime, b.beam_current, b.beam_energy,case " +
      "when a.st2_vs2_bag1_onoff=0 then c.st2_vs2_bag1_rb ELSE 0 END as st2_vs2_bag1_rb," +
      "CASE when a.st2_vs2_bag2_onoff=0  then c.st2_vs2_bag2_rb else '0' END as st2_vs2_bag2_rb," +
      "CASE when a.st2_vs2_bag3_onoff=0  then c.st2_vs2_bag3_rb else '0' END as st2_vs2_bag3_rb," +
      "CASE when a.st2_vs2_bag4_onoff=0  then c.st2_vs2_bag4_rb else '0' END as st2_vs2_bag4_rb," +
      "CASE when a.st2_vs2_bag5_onoff=0  then c.st2_vs2_bag5_rb else '0' END as st2_vs2_bag5_rb," +
      "CASE when a.st2_vs2_bag6_onoff=0  then c.st2_vs2_bag6_rb else '0' END as st2_vs2_bag6_rb," +
      "CASE when a.st2_vs2_bag7_onoff=0  then c.st2_vs2_bag7_rb else '0' END as st2_vs2_bag7_rb," +
      "CASE when a.st2_vs2_bag8_onoff=0  then c.st2_vs2_bag8_rb else '0' END as st2_vs2_bag8_rb," +
      "CASE when a.st2_vs2_bag9_onoff=0  then c.st2_vs2_bag9_rb else '0' END as st2_vs2_bag9_rb " +
      "from INDUS2_BDS.dbo.DCCT b INNER JOIN(INDUS2_VACUUM.dbo.main_vacuum_analog c inner join INDUS2_VACUUM.dbo.main_vacuum_status a on c.logtime=a.logtime)" +
      "ON a.LOGTIME = b.LOGTIME and (b.beam_current like '%9.96' or b.beam_current like '%9.97' or  b.beam_current like '%9.98' or  b.beam_current like '%9.99'  or  b.beam_current like '%0' or b.beam_current like '%_0.01' or  b.beam_current like '%_0.02' or  b.beam_current like '%_0.03' or  b.beam_current like '%_0.04' or  b.beam_current like '%_0.05' or  b.beam_current like '%_0.06')" +
      "and b.logtime between '" + date + " 00:00:00' and '" + date + " 23:59:59' and b.beam_current in(" + s_user + ") and ( b.beam_energy between '550' and '551' ) order by b.beam_current ";

    System.out.println("vs1: " + vs1);
    stmt.executeQuery(vs1);
    rs = stmt.getResultSet();


    while (rs.next()) {
      Comaprision ref = new Comaprision();

      ref.setLogtime(rs.getString(1));
      ref.setBeam_current(rs.getString(2));
      ref.setBeam_energy(rs.getString(3));
      ref.setSt2_vs2_bag1_rb(rs.getString(4));
      ref.setSt2_vs2_bag2_rb(rs.getString(5));
      ref.setSt2_vs2_bag3_rb(rs.getString(6));
      ref.setSt2_vs2_bag4_rb(rs.getString(7));
      ref.setSt2_vs2_bag5_rb(rs.getString(8));
      ref.setSt2_vs2_bag6_rb(rs.getString(9));
      ref.setSt2_vs2_bag7_rb(rs.getString(10));
      ref.setSt2_vs2_bag8_rb(rs.getString(11));
      ref.setSt2_vs2_bag9_rb(rs.getString(12));
      st_jsp.add(ref);

    }

  } catch (Exception e) {
    System.out.println("\nException in refarray_vac1 " + e);
  }

  return st_jsp;
}
public Listrefarray\u vac1(字符串日期)抛出SQLException、ParseException{
st_jsp.clear();
Listslist\u user=newarraylist(map1.keySet());
字符串s_user=StringUtils.join(slist_user,,);
试一试{
con=getConnection();
stmt=con.createStatement(ResultSet.TYPE\u SCROLL\u敏感,ResultSet.CONCUR\u只读);
String vs1=“选择b.logtime、b.beam\u current、b.beam\u energy、case”+
“当a.st2_vs2_bag1_onoff=0时,c.st2_vs2_bag1_rb,否则0结束为st2_vs2_bag1_rb,”+
“如果a.st2_vs2_bag2_onoff=0,则c.st2_vs2_bag2_rb的其他'0'结束为st2_vs2_bag2_rb,”+
“如果a.st2_vs2_bag3_onoff=0,则c.st2_vs2_bag3_rb的其他'0'结束为st2_vs2_bag3_rb,”+
如果a.st2_vs2_bag4_onoff=0,则c.st2_vs2_bag4_rb的其他“0”结束为st2_vs2_bag4_rb+
如果a.st2_vs2_bag5_onoff=0,则c.st2_vs2_bag5_rb的其他“0”结束为st2_vs2_bag5_rb+
“如果a.st2_vs2_bag6_onoff=0,则c.st2_vs2_bag6_rb的其他'0'结束为st2_vs2_bag6_rb,”+
如果a.st2_vs2_bag7_onoff=0,则c.st2_vs2_bag7_rb的其他“0”结束为st2_vs2_bag7_rb+
“如果a.st2_vs2_bag8_onoff=0,则c.st2_vs2_bag8_rb的其他'0'结束为st2_vs2_bag8_rb,”+
“如果a.st2_vs2_bag9_onoff=0,则c.st2_vs2_bag9_rb的其他“0”结束为st2_vs2_bag9_rb”+
“来自INDUS2_BDS.dbo.DCCT b内部连接(INDUS2_真空.dbo.main_真空_模拟c内部连接INDUS2_真空.dbo.main_真空_状态a在c.logtime=a.logtime上)”+
“在a.LOGTIME=b.LOGTIME和(b.beam_电流如'%9.96'或b.beam_电流如'%9.97'或b.beam_电流如'%9.98'或b.beam_电流如'%9.99'或b.beam_电流如'%0'或b.beam_电流如'%0.01'或b.beam_电流如'%0.02'或b.beam_电流如'%0.03'或b.beam_电流如'%0.04'或b.beam_电流如'%0.05'或b.beam_电流如'%0.06')" +
“和b.logtime介于“+date+”00:00:00”和“+date+”23:59:59”之间,b.beam_电流输入(“+s_用户+”)和(b.beam_能量介于“550”和“551”)之间,按b.beam_电流顺序排列”;
System.out.println(“vs1:+vs1”);
执行程序(vs1);
rs=stmt.getResultSet();
while(rs.next()){
Comaprision ref=新的Comaprision();
参考setLogtime(rs.getString(1));
参考setBeam_电流(rs.getString(2));
参考setBeam_energy(rs.getString(3));
参考setSt2_vs2_bag1_rb(rs.getString(4));
参考setSt2_vs2_bag2_rb(rs.getString(5));
参考setSt2_vs2_bag3_rb(rs.getString(6));
参考setSt2_vs2_bag4_rb(rs.getString(7));
参考setSt2_vs2_bag5_rb(rs.getString(8));
参考setSt2_vs2_bag6_rb(rs.getString(9));
参考setSt2_vs2_bag7_rb(rs.getString(10));
参考setSt2_vs2_bag8_rb(rs.getString(11));
参考setSt2_vs2_bag9_rb(rs.getString(12));
st_jsp.add(ref);
}
}捕获(例外e){
System.out.println(“\n重构中的异常”+e);
}
返回st_jsp;
}
它看起来像:

    String previousBeam = null;
    while (rs.next()) {
        String currentBeam = rs.getString(2);
        if (!currentBeam.equals(previousBeam)) {
            previousBeam = currentBeam;
            Comaprision ref = new Comaprision();
            ref.setLogtime(rs.getString(1));
            // ...
            ref.setSt2_vs2_bag9_rb(rs.getString(12));
            stJsp.add(ref);
        }
    }

您可以使用哈希集并向其中添加元素,并且只显示哈希集中不存在的元素:

HashSet set = new HashSet<String>();

while(rs.next())
{
    if(!set.add(rs.getString(2))) // 2 here corresponds to the index of beam_current
    {
         //you continue and do w/e
    }
}
HashSet=newhashset();
while(rs.next())
{
如果(!set.add(rs.getString(2))//2这里对应于beam_current的索引
{
//你继续做w/e
}
}

当然有一种方法可以直接在查询中执行此操作,但由于您仍在结果集上循环,因此只需将当前行beam\u current存储在变量“previous\u beam\u current”中就更容易了,如果元素的beam\u current等于上一个beam\u current,则只需跳过添加该元素即可。@Mooolo我必须获取一个字符串变量并将beam\u current值存储在其中。但是,当第二次执行此while循环时,如何将其与beam\u current进行比较??