JAVA GUI - 从MYSQL获取并显示数据

时间:2017-12-05 20:58:38

标签: java mysql user-interface

我正在开发一个具有MySQL访问权限的GUI应用程序。当用户在JTextField' VendorID'中输入一些数据时,我希望在数据库中搜索它,找到包含信息的正确行,并单独显示其他JtextFields中的所有列。实际上我希望这些数据在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 个答案:

答案 0 :(得分:0)

根据我的理解,您在执行声明时遇到了问题? 您需要将语句设置如下:

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);是来自column1的数据。