gpt4 book ai didi

java - 如何使用数据库在java swing gui中显示特定值?

转载 作者:行者123 更新时间:2023-12-01 09:08:07 24 4
gpt4 key购买 nike

我尝试使用 java swing gui.i 从数据库中获取学生姓名和父亲姓名。我使用了以下源代码。当我执行代码时,我没有收到任何错误。

import javax.swing.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class Test1 {

JFrame f;
JLabel l1,l2,l3,l4;
JTextField f1,f2;
JButton b1;
Connection con;
Statement st = null;
ResultSet rs;

/**
* Creates new form Register
*/
public static void main(String args[]) {
Test1 r=new Test1();
r.frame();
r.connect();
}

public void connect() {


try {


Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@//drf9db07:1521/DRF9DB_EDA","EDA_XMLV02_IMP_f9","clob1234");
st =con.createStatement();

String str = "select student_name,father_name from studentdb where rollno=? and batchno=?";
ResultSet rs = st.executeQuery(str);
System.out.println(rs);

while (rs.next()) {
String student_name = rs.getString("student_name");
String father_name = rs.getString("father_name");
System.out.println(student_name + "\t" + father_name);
}

} catch (Exception e) {
e.printStackTrace();
}


}

public void frame()
{
f=new JFrame ("studentrecord");
f1=new JTextField(10);
f2=new JTextField(10);
l1=new JLabel("rollno");
l2=new JLabel("batchno");
b1=new JButton("submit");
l3=new JLabel("student_name");
l4=new JLabel("father_name");

f.setLayout(new GridBagLayout());
f.add(l1);
f.add(f1);
f.add(l2);
f.add(f2);
f.add(b1);
f.add(l3);
f.add(l4);

f.setVisible(true);
f.pack();
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
String rollno=l1.getText();
String batchno=l2.getText();
String student_name=l3.getText();
String father_name=l4.getText();
System.out.println(rollno);
System.out.println(batchno);
System.out.println(student_name);
System.out.println(father_name);

connect();
}
});
}
}

当我对卷号和批处理号进行硬编码时,我可以在控制台中看到结果。但是当我传递参数时,它不会被执行,并且我在 GUI 中看不到任何更新。

现在,当输入 rollno 和 batchno 时,我在 eclipse 控制台中收到以下响应

oracle.jdbc.driver.OracleResultSetImpl@1811e67 rollno batchno student_name father_name oracle.jdbc.driver.OracleResultSetImpl@16d0c80 Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook

我认为我传递的值不会从 gui 发布到 sql 查询。

最佳答案

在您的连接方法中,在字符串中的查询后面添加此代码,并确保删除语句:- st.executeQuery(str);
ResultSet rs=st.executeQuery(str);



while(rs.hasNext())
{
String student_name=rs.getString("student_name");
String father_name=rs.getString("father_name");
}

System.out.println(学生名+""+父亲名);

此外,如果您想在 swing 标签中显示这些值,只需将这些字符串变量传递给标签构造函数,还要确保您在类中全局声明这些变量,即:student_name 和father_name,以便所有方法都可以访问它在你的类(class)里。现在在我的代码中,这些变量是 ResultSet block 的本地变量。

关于java - 如何使用数据库在java swing gui中显示特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com