如何从java列表获取值
问题描述:
我需要您的帮助来从列表中获取值并将它们附加到插入语句。我有一个类中调用员工说:如何从java列表获取值
public class Employee {
private Integer id; //Getter and Setter
private String name;//Getter and Setter
private String remarks;//Getter and Setter
private boolean disable;//Getter and Setter
public Employee(Integer id, String name, String remarks, boolean disable){
this.id = id;
this.name = name;
this.remarks=remarks;
this.disable=disable;
}
在豆,我生成随机数的EmployeeList的:
private List<Employee> employeeList;
private List<Employee> selectedEmployees;
public test() {
super();
employeeList = new ArrayList<Employee>();
for (int i = 1; i <= 10; i++) {
employeeList.add(new Employee(i, "Name " + i, "Remarks " + i, true));
}
}
和选择的值将被存储在列表selectedEmployees
。现在我想编写一个新的方法来打印提取的值,然后将它们附加到一个插入语句中以将选定的值插入到表中。
public void updateRecords() {
System.out.println("Size =" + selectedEmployees.size());
//Here I need help to print the values of the list and then to append them to an insert statement to the table employees
insert into employees (id,name,remarks) values();
}
答
可以使用for each
语句来达到这个,但是因为你已经宣布你的成员变量private
您无法读取它们这样无论是你应声明你的类成员public
或宣布干将阅读会员资料
Connection connection = DriverManager.getConnection(...);
for(Employee e:selectedEmployees)
{
System.out.println("Employee id: "+e.id+" name: " + e.name+ " remarks: " + e.remarks);
String sql = "INSERT INTO employees (id,name,remarks) VALUES(?,?,?);";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, e.id);
statement.setString(2, e.name);
statement.setString(3, e.remarks);
statement.executeUpdate();
}
答
对于arraylist,您可以使用此语法。 X是列表中该员工的数量,那么您将不得不为您的变量创建getter和setter。
Employees.get(x).getName();
然后,您将创建一个聘用对象,然后像这样插入。
Employee dude = new employee(1, name, remarks, disable);
Employees.add(dude);
+0
这个解决方案与已经提出的问题无关,请仔细阅读 – Pooya
答
PreparedStatement#executeBatch是解决您的问题的完美人选。
你可以这样实现它:
public void updateRecords(List<Employee> employees) {
System.out.println("Size =" + selectedEmployees.size());
//Here I need help to print the values of the list and then to append them to an insert statement to the table employees
String query = "insert into employees (id,name,remarks) values (?,?,?)";
Connection con = ... // establish DB connection
PreparedStatement ps = con.prepareStatement(query);
for(Employee emp : employees) {
ps.setNumber(1, emp.getId());
ps.setString(2, emp.getName());
ps.setString(3, emp.getRemarks());
ps.addBatch();
}
ps.executeBatch();
}
上面的代码只是你需要使它编译,也需要做适当的异常处理的例子。
希望这会有所帮助。
邀请SQL注入 – Sanjeev
@Sanjeev谢谢你的注意事项 – Pooya