我正在用Java swing开发项目“医院管理系统”。现在,我有一个文本字段,每当加载页面时,该字段的值就会增加一。它基本上包含患者ID的值。现在,我想从数据库中检索最大或最后一个值,并将其增加一个,然后在变量为“ textField_1”的文本字段中设置该值。在这里,表名是“病人”,列名是“ patid”,此代码段写在页面加载事件中。Select查询已成功执行,但问题不是从数据库中获取最大值。控制已到达if块,但未打印if“ i”值。请帮忙!!
try
{
Connection con;
Statement st;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("Jdbc:Odbc:hos_man");
st=con.createStatement();
rs=st.executeQuery("select * from patient where patid = (select max(patid) from patient);");
if (rs.next()==true)
{
int i=rs.getInt(1);
i++;
textField_1.setText(""+i);
}
else
{
textField_1.setText(""+100);
}
con.close();
st.close();
rs.close();
}
catch (Exception e)
{
}
首先,您的查询是正确的,但是不好的做法。如果仅需要,max(patid)
则使用以下查询:
select max(patid) from patient
然后,如下所示修改您的代码。
try
{
Connection con;
Statement st;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("Jdbc:Odbc:hos_man");
st=con.createStatement();
rs=st.executeQuery("select max(patid) from patient");
int i=100;
while (rs.next())
{
i=rs.getInt(1);
}
textField_1.setText(""+i);
con.close();
st.close();
rs.close();
}
catch (Exception e)
{
e.printStackTrace();
}
这应该工作
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句