如何调用咨询结果并将其放入文本字段? Mysql + Java
How to call the result of a consult and put it in a Textfield? Mysql + Java
我的文本字段名为 pruebamax
通过这个函数我与数据库建立了连接
public ResultSet getmax() {
ResultSet r = null;
try {
String sql = "select count(*) as Cantidad from tbl_padre";
System.out.println(sql);
Statement st = cx.createStatement();
r = st.executeQuery(sql);
System.out.println(st.executeQuery(sql));
} catch (SQLException ex) {
Logger.getLogger(Tmrptryone.class.getName()).log(Level.SEVERE, null, ex);
}
return r;
}
他的方法在一个按钮的情况下,用这个方法我想在文本字段中打印我从数据库收到的数据但是我得到了一个错误。
public void actualizatext() {
try {
ResultSet r = mrp.getmax();
if (r.next()) {
String ID = r.getString("Cantidad");
pruebamax.setText(ID);
}
} catch (SQLException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
现在,我不知道 pruebamax 是什么意思,但是您使用的 SQL 语句:
String sql = "SELECT COUNT(*) AS Cantidad FROM tbl_padre";
专门用于统计指定数据库table当前维护的记录总数(tbl_padre).该计数的值将保存在名为:Cantidad 的指定临时字段中。当您使用 SQL COUNT 语句时,您不会返回 String 数据类型值。您将被期望尝试获取一个整数值。
它不会从您的tableID字段获取值正如您所期望的那样。
要从您应用的 SQL 字符串中正确检索记录计数,则应以这种方式使用它:
int count = 0;
try {
String sql = "SELECT COUNT(*) AS rCount FROM tbl_padre";
Statement st = cx.createStatement();
ResultSet r = st.executeQuery(sql);
while (r.next()) {
count = r.getInt("rCount");
}
r.close();
st.close();
// Close your DB connection as well if desired.
// yourConnection.close();
//To apply this value to your JTextField:
pruebamax.setText(String.valueOf(count));
System.out.println("Total number of records in the tbl_padre " +
" table is: " + count);
}
catch (SQLException ex) {
ex.printStackTrace();
}
尽量不要使用实际的 table 字段名称作为临时字段名称。
如果您想更具体地说明您的计数,那么您的 SQL 语句也必须更具体。例如,假设我们要计算 table 中维护的记录数,其中名为 Age 的字段包含大于 30 的值 岁,我们的 sql 声明将如下所示:
String sql = "SELECT COUNT(*) AS rCount FROM tbl_padre WHERE Age > 30";
您当然会注意到 SQL WHERE 子句的使用。
我的文本字段名为 pruebamax
通过这个函数我与数据库建立了连接
public ResultSet getmax() {
ResultSet r = null;
try {
String sql = "select count(*) as Cantidad from tbl_padre";
System.out.println(sql);
Statement st = cx.createStatement();
r = st.executeQuery(sql);
System.out.println(st.executeQuery(sql));
} catch (SQLException ex) {
Logger.getLogger(Tmrptryone.class.getName()).log(Level.SEVERE, null, ex);
}
return r;
}
他的方法在一个按钮的情况下,用这个方法我想在文本字段中打印我从数据库收到的数据但是我得到了一个错误。
public void actualizatext() {
try {
ResultSet r = mrp.getmax();
if (r.next()) {
String ID = r.getString("Cantidad");
pruebamax.setText(ID);
}
} catch (SQLException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
现在,我不知道 pruebamax 是什么意思,但是您使用的 SQL 语句:
String sql = "SELECT COUNT(*) AS Cantidad FROM tbl_padre";
专门用于统计指定数据库table当前维护的记录总数(tbl_padre).该计数的值将保存在名为:Cantidad 的指定临时字段中。当您使用 SQL COUNT 语句时,您不会返回 String 数据类型值。您将被期望尝试获取一个整数值。
它不会从您的tableID字段获取值正如您所期望的那样。
要从您应用的 SQL 字符串中正确检索记录计数,则应以这种方式使用它:
int count = 0;
try {
String sql = "SELECT COUNT(*) AS rCount FROM tbl_padre";
Statement st = cx.createStatement();
ResultSet r = st.executeQuery(sql);
while (r.next()) {
count = r.getInt("rCount");
}
r.close();
st.close();
// Close your DB connection as well if desired.
// yourConnection.close();
//To apply this value to your JTextField:
pruebamax.setText(String.valueOf(count));
System.out.println("Total number of records in the tbl_padre " +
" table is: " + count);
}
catch (SQLException ex) {
ex.printStackTrace();
}
尽量不要使用实际的 table 字段名称作为临时字段名称。
如果您想更具体地说明您的计数,那么您的 SQL 语句也必须更具体。例如,假设我们要计算 table 中维护的记录数,其中名为 Age 的字段包含大于 30 的值 岁,我们的 sql 声明将如下所示:
String sql = "SELECT COUNT(*) AS rCount FROM tbl_padre WHERE Age > 30";
您当然会注意到 SQL WHERE 子句的使用。