我创建了这个方法,但是当我尝试调用该方法时,它返回一个空指针异常。谁能告诉我出了什么问题吗?请帮助我
public Talent SearchTalentQuery(int talentID){
String SearchTalentString = "SELECT * FROM TALENT WHERE TALENTID = "+talentID+";";
Talent talent=null;
try{
//error in select query
if(getOracleXEConnection()!=null){
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(SearchTalentString);
while( rs.next()){
talent.setTalentName(rs.getString("talentname"));
talent.setTalentFocus(rs.getString("maintalentfocus"));
talent.setTalentNationality((rs.getString("nationality")));
talent.setTalentGroup(rs.getString("talentgroup"));
talent.setTalentHiredate(rs.getString("hiredate"));
talent.setTalentAge(Integer.parseInt(rs.getString("age")));
talent.setTalentID(Integer.parseInt(rs.getString("talentid")));
}
rs.close();
statement.close();
conn.close();
return talent;
}
else{
return null;
}
}
catch(SQLException | NumberFormatException e){
e.printStackTrace();
}
return null;
最佳答案
您没有实例化要分配给的Talent
对象。
Talent talent=null;
...
talent.setTalentName(...
为了解决您的评论,您初始化对空指针的talent
引用。您需要实例化一个对象并指向它才能调用它的方法。
根据您的约束等,您的方法可能希望返回此 Talent
对象,或者通过每次迭代创建一个新对象并返回这些对象的集合。
关于Java SQL连接,选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12708677/