gpt4 book ai didi

java - 如何获取不返回任何记录的sql选择查询的行数并将其添加到ArrayList中

转载 作者:行者123 更新时间:2023-12-01 10:36:45 25 4
gpt4 key购买 nike

我有一个问题,在我的java程序中,当我从数据库中选择一些记录时,我需要的记录不会被数据库中的sql查询重新运行。假设我的表中有 5 条记录,并且我在 java 程序中的 where 条件下给出了 8 条记录,因此我需要 ArrayList 中的 3 条记录,因为该程序没有重新运行任何值。

我的示例程序如下:-

import java.sql.*;

导入java.util.ArrayList;公共(public)类数据库{

   static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";  
static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:orcl";


static final String USER = "asiftest";
static final String PASS = "asif";

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{

Class.forName("oracle.jdbc.driver.OracleDriver");



conn = DriverManager.getConnection(DB_URL,USER,PASS);
ArrayList ar =new ArrayList();

System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT contractno FROM temp_survival where contractno in ('77777','11111','22222','33333','44444','55555','66666','77777','363636','25252')";
ResultSet rs = stmt.executeQuery(sql);


while(rs.next()){


String first = rs.getString("contractno");

System.out.print("contractno: " + first);

}

rs.close();
stmt.close();
conn.close();
}catch(SQLException se){

se.printStackTrace();
}catch(Exception e){

e.printStackTrace();
}finally{

try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}

}
}

对于上述程序,我得到的值为“77777”、“11111”、“22222”、“33333”、“44444”、“55555”、“66666”、“77777”,但接下来的 2 条记录为“363636” ','25252' 我没有获取值,因为数据库表中没有这些值,所以我需要将它们添加到上面程序的数组列表中。请帮助我

最佳答案

  1. 为输入联系号码(您在 where 子句中传递)创建一个列表
  2. 列出您在查询结果中获得的联系号码
  3. 使用CollectionUtils.substract(list1, list2)

关于java - 如何获取不返回任何记录的sql选择查询的行数并将其添加到ArrayList中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com