簡體   English   中英

如何在 SQL Java 中將列表值作為參數傳遞

[英]How to Pass List values as parameters in SQL Java

我有一個 sql 查詢(將值從一個表復制到同一數據庫中的另一個表),它采用多個值作為參數,值來自列表。

下面是我嘗試過的。雖然我沒有收到任何錯誤,但它不起作用。我想將值插入數據庫列表 EmployeeIDList= new ArrayList(Arrays.asList(123,823,456,890)); List SalaryList= new ArrayList(Arrays.asList(14437,14297,13846,13441));

con1=DriverManager.getConnection(URL1,DB_UserName,DB_Password);
log.info("Data base connection is established");        
for (int i=0,j=0;i<EmployeeIDList.size();i++,j++) {
    stmt = con1.prepareStatement("Insert INTO Employee(Name, Year, EmployeeID, Tax, Salary)                 
            Select Name, Year, EmployeeID, Tax, Salary 
             (Employee

                       when EmployeeID= ? then ?   // 1st ? = EmployeeID,2nd ? = Salary
                       when EmployeeID = ? then ?         
                       when EmployeeID = ? then ?
                       else ?  // ? = Salary
                       end ) as Employee
                "From Employee2 + 
                "Where EmployeeIDin (?)");

        stmt.setInt(1,SalaryList.get(j));
        stmt.setInt(2,EmployeeIDList.get(i));           
        System.out.println("first salry is " +SalaryList.get(j))    ;
        System.out.println("first Employeeid is " +EmployeeIDList.get(i))   ;
        rs = stmt.execute();

當我在 sql 中執行“select * from Employee”時,它不返回任何值。

注意:如果我在 sql 中執行上面的插入查詢,它工作正常。只有通過 java 我無法插入值。

請試試這些代碼 String query = " Insert INTO Employee(Name, Year, EmployeeID, Tax, Salary)" + " values (?, ?, ?, ?, ?)"; 然后應用選擇查詢

我已經解決了。setInt中的位置編號有誤。謝謝大家

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM