Java 从数据库中获取值
我一直在尝试从txt1(jtextfield)中获取一个值,它是我数据库中的一个id。但它一直在说java.lang.NullPointerException。代码如下:Java 从数据库中获取值,java,database,jdbc,Java,Database,Jdbc,我一直在尝试从txt1(jtextfield)中获取一个值,它是我数据库中的一个id。但它一直在说java.lang.NullPointerException。代码如下: public void harga() { try { stat = con.createStatement(); String query = "SELECT harga from obat WHERE ID = '"+ Integer.valueOf(txt1.getText())+
public void harga()
{
try {
stat = con.createStatement();
String query = "SELECT harga from obat WHERE ID = '"+ Integer.valueOf(txt1.getText())+"'";
stat.executeQuery(query);
ResultSet rs = stat.getResultSet();
while (rs.next()) {
int harga = rs.getInt("harga");
//String nama = rs.getString("nama");
System.out.println(harga);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
您在评论中说txt1初始化为
JTextField txt1 = new JTextField();
这似乎是错误的:txt1应该是类的一个变量,但您编写的局部变量不存在于该方法之外。试试这个
private JTextField txt1; //Below the class declaration "public Class ..."
txt1 = new JTextField(); //Instead of the line you wrote to initialize txt1
首先@Sagar似乎是正确的,因为它不能确保在
txt1
中有可浇铸值。为确保您应该为txt1
添加ChangeListener。
其次,将查询集中在一起是一种不好的做法,尤其是当查询参数来自UI时。这背后的原因是您正在向SQL注入敞开大门。改用PreparedStatements
:
快乐编码,欢迎来到Stackoverflow 在第142行,字符串查询行以及如何初始化
txt1
?JTextField txt1=new JTextField();在这种情况下,在txt1
中没有设置值,请确保在查询db之前有一些值。我已经尝试了此操作,但仍然出现了一个错误:(确切地说是哪个错误?如果仍然存在相同的错误,则可能是将txt1传递给执行查询的函数的方式有问题。)