在jTextField中显示数据库记录

时间:2015-07-25 10:55:26

标签: java mysql database jdbc jtextfield

我想展示一些问题和答案。所以为了测试我只是试图显示问题编号和问题,但是那里有

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

错误,我不知道接下来该做什么。 我想用下一个按钮显示下一条记录。 2. seteditable is not work(给出错误)

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String qid=jTextField1.setEditable(false);
String qid=jTextField1.getText();
String ques=jTextField2.getText();

 try{       
            Class.forName("com.mysql.jdbc.Driver");
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","");
            PreparedStatement ps = con.prepareStatement("select * from qc where qid=1");                          
            ResultSet rs=ps.executeQuery();
            if(rs.next()){
                jTextField1.setText(rs.getString("qid"));
                jTextField2.setText(rs.getString("ques"));
            }
            }           
            catch(ClassNotFoundException | SQLException e)
            {
            System.out.println(e);
            }
}                                        

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
}  

1 个答案:

答案 0 :(得分:0)

确保您的类路径中有MySql-Driver。

您可以在此处下载:https://dev.mysql.com/downloads/connector/j/5.0.html

配置类路径取决于您的环境。如果您在eclipse中运行代码,可以按照以下步骤操作:

  1. 下载jdbc驱动程序
  2. 将jdbc驱动程序(例如mysql-connector-java-5.0.8-bin.jar)放入您的eclipse项目
  3. 右键单击,Build PathAdd to Build Path
  4. 使用netbeans:

    1. 下载jdbc驱动程序
    2. 将jdbc驱动程序(例如mysql-connector-java-5.0.8-bin.jar)放入netbeans项目
    3. 右键单击项目,属性,转到,选择运行时库
    4. 将jar添加到列表
    5. 要跳转到下一个项目,有几个选项。

      一个解决方案可能如下所示:

      在您的课程顶部添加此代码:

      // private JTextField jTextField1;
      // private JTextField jTextField2;
      // ...
      private int currentQid; // add this line to declare a new field of type int
      

      然后在你的actionlistener方法中:

      PreparedStatement ps = con.prepareStatement("SELECT * FROM qc WHERE qid > ? ORDER BY qid LIMIT 1");
      ps.setInt(1, currentQid);
      ResultSet rs=ps.executeQuery();
      if(rs.next()){
          currentQid = rs.getInt("qid");
          jTextField1.setText(Integer.toString(currentQid));
          jTextField2.setText(rs.getString("ques"));
      }
      

      详细说明:

      • SELECT * FROM qc WHERE qid > ? ORDER BY qid LIMIT 1将选择记录,并在?
      • 旁边加上qid
      • ps.setInt(1, currentQid);会将查询的第一个参数(?)设置为提供的值
      • currentQid = rs.getInt("qid");会将下一个qid保存在实例字段currentQid
      • Integer.toString(currentQid)会将currentQid转换为文字
      • jTextField1.setText(...);会在jTextField1
      • 中显示文字