這裏我正在從文件中讀取學生數據並將其存儲在db.For正在使用ArrayList。 例如,將最長的變量名存儲在另一個臨時變量中
Student(){
private int rollNo;
private String name,department,branch;
private String cgpa;
.
.
.
public int getRollNo(){
return rollNo;
}
public String getName(){
return name;
}
public String getDepartment(){
return department;
}
public String getBranch(){
return branch;
}
public String getCgpa(){
return cgpa;
}
}
和我的ArrayList的變量是
ArrayList<Student> stu;
中序從ArrayList中獲取任何領域,我必須使用stu.get(i).getRollNo()
, stu.get(i).getName()
,stu.get(i).getDepartment()
等。這裏我多次使用了stu.get(i)
。爲了避免我將stu.get(i)
存儲在臨時變量中。例如
String temp="stu.get(i)."
sql="INSERT INTO STUDENT VALUES('"+temp+"getRollNo()"+"','"+temp+"getName()"+"','"+temp+"getDepartment()"+"','"+temp+"getBranch()"+"',"+Float.parseFloat(temp+"getCgpa()")+")";
但是當我使用temp+"getRollNO()"
時,不調用該方法。請解釋這個問題。如果它不可能,請給我另一種方法來實現。
易發生sql注入,因此不推薦。 – Manu 2014-10-01 11:07:52
謝謝...我明白我的錯誤.. – 2014-10-01 11:12:37
確實,它很容易出現sql注入。但代碼中的錯誤與此部分有關。我同意PreparedStatement解決方案是將數據安全插入數據庫的更好解決方案。 – 2014-10-01 11:45:13