如何将列表值作为SQL Java中的参数传递

问题描述 投票:0回答:1

我有一个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,我无法插入值。

java sql list prepared-statement
1个回答
0
投票

请尝试这些代码字符串查询=“插入INTO雇员(姓名,年,雇员ID,税金,薪水)”+“值(?,?,?,?,?)”;然后应用选择查询

© www.soinside.com 2019 - 2024. All rights reserved.