当前位置: 首页 > 知识库问答 >
问题:

如何在java类方法中连接到数据库sql,并在另一个类中调用它?

那谦
2023-03-14

我试图创建一个桌面应用程序使用corba和java swing图形界面。

如您所知,在CORBA中,我们必须使主要的方法像:连接到数据库,计算······因此,我在服务器类中创建了一个用于连接数据库的方法。

java类方法如下所示:

public  void connect_db(){
    // TODO Auto-generated method stub

    JTextField txtUsername = FrameLogin.txtUsername;
     JPasswordField pwd= FrameLogin.pwd;
    JLabel lblLoginMessage= FrameLogin.lblLoginMessage;
    
    try {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection conn =(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/utilisateurs","root", "Mrayhana123");
        Statement stm = conn.createStatement();
        String sql="select * from etudiant where username='"+txtUsername+"' and pwd='"+pwd+"'";
        ResultSet result = stm.executeQuery(sql);
        if(result.next()){
            lblLoginMessage.setText("you are connected");
            lblLoginMessage.setForeground(Color.GREEN);
        
        
        }
        else {
            lblLoginMessage.setText("Incorrect username or password!");
            lblLoginMessage.setForeground(Color.RED);
        }

    } catch(Exception e){
        //System.out.println("not connected to database");
        e.printStackTrace();
}
}
public static JTextField txtUsername;
   public static JPasswordField pwd;
   public static JLabel lblLoginMessage = new JLabel("");

 pnlBtnlogin.addMouseListener(new MouseAdapter() {
            @Override
            
                  String username = txtUsername.getText();
                    String pwd= pwd.getText();
                    
                    try {
                        
                        SraCorbaImpl sci = new SraCorbaImpl();
                        sci.connect_db();
                        
                    } catch(Exception e1){
                        //System.out.println("not connected to database");
                        e1.printStackTrace();               
                        }
                    

共有1个答案

昝欣可
2023-03-14

根据您的评论,我知道您成功连接到数据库,但查询没有返回任何行。

如果问题中的代码是实际代码,那么将JTextField传递给[SQL]查询,而不是JTextField的文本。密码也是如此。您传递的是JPasswordField,而不是实际的密码。

尝试下面的代码。

public  void connect_db(){
    JTextField txtUsername = FrameLogin.txtUsername;
    JPasswordField pwd= FrameLogin.pwd;
    JLabel lblLoginMessage= FrameLogin.lblLoginMessage;
    try {
//        Class.forName("com.mysql.cj.jdbc.Driver"); <- not required
        Connection conn =(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/utilisateurs","root", "Mrayhana123");
        Statement stm = conn.createStatement();
        String sql="select * from etudiant where username='"+txtUsername.getText()+"' and pwd='"+pwd.getText()+"'";  // Change here.
        ResultSet result = stm.executeQuery(sql);
        if(result.next()){
            lblLoginMessage.setText("you are connected");
            lblLoginMessage.setForeground(Color.GREEN);
        }
        else {
            lblLoginMessage.setText("Incorrect username or password!");
            lblLoginMessage.setForeground(Color.RED);
        }
    } catch(Exception e){
        //System.out.println("not connected to database");
        e.printStackTrace();
}
String sql="select * from etudiant where username=? and pwd=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, txtUsername.getText());
ps.setString(2, pwd.getText());
 类似资料:
  • 问题内容: 所以我基本上想做的很简单 由于某种原因,它无法正常工作。在我的Javascript控制台(Chrome浏览器)中 编辑1:我已经添加了实际的代码,如您所见,我在构造函数中绑定了validateEmail 问题答案: 您的方法已正确定义,因此问题出在如何 调用上 。 您以一种设置为实例以外的方式调用它。这在事件侦听器中很常见。我想您的代码中有一些类似的代码: React 的推荐解决方案是

  • 我有一个类,它调用两个单例类FirstClass和SecondClass,如下所示。有没有一种方法可以在第二类中访问第一类中计算的数据。在这种情况下,我不想在第二类中进行外部服务调用,因为第一类已经调用了它。相反,只需在第二个数据函数中使用数据(存储在第一类函数中)。有什么方法可以做到。

  • 问题内容: 在Bruce Eckel的“ Thinking In Java,第四版”的第428页(有关类型信息的章节)中,具有以下示例: 也许我有点累,但是我看不到add()方法中对add()的调用是如何工作的。我一直认为它应该有一个引用,或者是一个静态方法(并且我在ArrayList或List中找不到静态add())。我想念什么? 我只是为自己测试,发现这可行: 问题答案: Java为这样的方法

  • 我有一个类,它调用两个单例类FirstClass和SecondClass,如下所示。有没有一种方法可以在第二类中访问第一类中计算的数据。在这种情况下,我不想在第二类中进行外部服务调用,因为第一类已经调用了它。相反,只需在第二个数据函数中使用数据(存储在第一类函数中)。在Spring框架中有哪些方法可以做到?

  • 嗨我正在努力解决我面临的问题 我想做的是调用test1类的zahl方法 这是我尝试过的,但它什么也没有返回,即使它应该显示我的错误。

  • 问题内容: 我正在研究一个问题,但由于刚开始学习Java而感到非常困惑。我可以理解的任何帮助都会很棒。我必须编写一个具有两个类的程序。主类将从文件中读取内容,并使用第二类来查找文件中相同单词被重复的次数,然后将它们添加到包含单词和单词重复次数的数组中。我可以阅读文件部分。我只是似乎不知道如何从第二个类调用方法以将单词添加到数组并增加计数器。到目前为止,这是我的代码,如果您运行它,您将看到多少错误会