我正在用java swing开发一个项目“医院管理系统”。现在我有一个文本字段,每当页面加载时,其值就会增加一。它基本上包含患者 ID 的值。现在我想从数据库中检索最大值或最后一个值并将其加一,并希望在变量为“textField_1”的文本字段中设置该值。这里表名是“病人”,列名是“patid”,这个片段是在页面加载事件中编写的。 Select 查询已成功执行,但问题是未从数据库中获取最大值。在 if block 中达到控制,但它不打印 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();
}
这应该有效
关于java - 如何在java程序中从access数据库中检索整数列的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005900/