我有一个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,我无法插入值。
请尝试这些代码字符串查询=“插入INTO雇员(姓名,年,雇员ID,税金,薪水)”+“值(?,?,?,?,?)”;然后应用选择查询