Как передать значения списка в качестве параметров в SQL Java - PullRequest
0 голосов
/ 26 марта 2020

У меня есть один запрос sql (копирование значений из одной таблицы в другую таблицу в той же базе данных), где он принимает несколько значений, поскольку параметры и значения находятся в списке.

Ниже приведен пример, который я пробовал. Я не получаю никакой ошибки, но она не работает. Я хочу вставить значения в базу данных List 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();

Когда я выполняю «select * from Employee» в sql, он не возвращает никаких значений.

Примечание. Если выполнить вышеупомянутый запрос вставки в sql, он работает нормально. Только через java Я не могу вставить значения.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

У меня есть решение. Произошла ошибка при нумерации позиции в setInt. Спасибо всем

0 голосов
/ 26 марта 2020

пожалуйста, попробуйте этот код String query = "Вставить INTO Employee (Имя, Год, EmployeeID, Tax, Salary)" + "values ​​(?,?,?,?,?)"; а затем применить запрос выбора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...