有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaGUI从MYSQL获取和显示数据

我正在开发一个具有MySQL访问权限的GUI应用程序。当用户在JTextField'VendorID'中输入一些数据时,我希望在数据库中搜索这些数据,找到包含信息的正确行,并分别显示其他JTextField中的所有列。实际上,我希望这些数据显示在JLabel中,但没有成功,所以现在尝试使用JtextFields。感谢您的帮助

public void findVendor() {

        String vatEntered = vendorID.getText();


        try
        {
         String myDriver = "com.mysql.jdbc.Driver";
         String myUrl = "jdbc:mysql://localhost:3306/masterdata_db?autoReconnect=true&useSSL=false";
         Class.forName(myDriver);
         Connection conn = DriverManager.getConnection(myUrl, "root", "");

         Statement st = conn.createStatement();


         String check = "SELECT * FROM vendorcreation WHERE VAT = 'vatEntered' ";      
         ResultSet resultSet = st.executeQuery(check);

         boolean status = true;
         if(resultSet.next()==status){

             nameSelected.setText(resultSet.getString(1));
             adressSelected.setText(resultSet.getString(2));
             countrySelected.setText(resultSet.getString(3));
             vatSelected.setText(resultSet.getString(4));
             ptermsSelected.setText(resultSet.getString(5));

             conn.close();

         }

         else {

             JOptionPane.showMessageDialog(null, "NO DATA FOUND! FIRST YOU MUST CREATE IT", "Inane error",JOptionPane.ERROR_MESSAGE);
             dispose();
             new CreateVendor().setVisible(true);        
             }


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


    }

共 (1) 个答案

  1. # 1 楼答案

    据我所知,你在执行声明时遇到了麻烦? 您需要按以下方式设置语句:

    String check = "SELECT * FROM vendorcreation WHERE VAT = " +vatEntered ;
    

    但最好使用事先准备好的声明

    String check = "SELECT * FROM vendorcreation WHERE VAT = ?";
    PreparedStatement st = conn.prepareStatement(check);
    st.setString(1, vatEntered);
    ResultSet resultSet = st.executeQuery();
    

    至于数据分类,顺序似乎取决于列在数据库中的顺序。您还可以通过更改语句手动设置结果:

    String check = "SELECT (column1, column2) FROM vendorcreation WHERE VAT = ?"//etc
    

    其中resultSet.getString(1);将是来自第1列的数据